1

我为什么要使用或需要使用具有隐藏属性的额外输入元素来制作一个在内部搜索给定网站的网站搜索框。

<div id="search_box">
<form name="searchform" action="http://www.google.com/search" method="get" target="_blank">
<input name="sitesearch" type="hidden" value="www.example.com" />
<input name="as_q" onfocus="this.value=''" type="text" size="20" value="Search www.example.com" title="Enter your search here" />
<input title="Begin Search" type="submit" value="Search" />
</form>
</div>

onfocus="this.value=''"此外,一旦用户点击它,我是否真的需要使用 Javascript来清除“搜索 www.example.com”的文本/值。为什么这不起作用,我怀疑这是因为人们无法通过“定位”某些“属性”。CSS 并且给定的 HTML 属性没有“替代”CSS 属性。

input[type="text"]:focus
{
value: "";
}

以上将失败,因为我不能(或者我可以?)定位 value 属性!但是对于像这样的非常小的功能使用 Javascript 似乎有点过头了。几乎就像使用 JS 来实现悬停效果而不是 CSS 伪:悬停。

4

2 回答 2

2

我为什么要使用或需要使用具有隐藏属性的额外输入元素来制作一个在内部搜索给定网站的网站搜索框。

您必须以某种方式告诉搜索引擎您要将搜索限制在特定站点。通常这是通过隐藏的输入字段完成的,因为当表单提交但不显示给用户时会包含该字段。

但是,它不需要是隐藏元素。你可以把它放在一个text, radiobutton,checkboxselecttoo 中。唯一的要求是将其发送到名称为“sitesearch”的搜索引擎,并带有您选择的网站的值。

一旦用户点击它,我真的需要使用Javascript onfocus =“this.value =''”来清除“搜索www.example.com”的文本/值吗?

您可以value=''从头开始设置并使用新的 html5 属性placeholder='Search www.example.com'。或者在页面的某处使用描述性文字。

但是对于像这样的非常小的功能使用 Javascript 似乎有点过头了。几乎就像使用 JS 来实现悬停效果而不是 CSS 伪:悬停。

您可能会认为这是矫枉过正,但多年来,这是唯一的方法。Javascript 早在 CSS 实现之前就已经在浏览器中了。悬停效果必须在 javascript 中实现,因为:hover直到 CSS2 才引入。您想在这种情况下使用的占位符效果最近才用 HTML5 实现。

于 2012-09-02T18:25:16.403 回答
1

sitesearch是传递给 google 的查询参数,它告诉 google 搜索特定网站,所以是的,这个属性是必需的,至于 javascript 代码, 我认为你可以通过contentcss3 的属性执行相同的操作,这将在现代浏览器中工作。

编辑:我尝试使用content但它似乎不起作用

于 2012-09-02T18:11:29.380 回答