Javascript 为什么要使用额外的输入元素来创建内部网站搜索框(和)

Javascript 为什么要使用额外的输入元素来创建内部网站搜索框(和),javascript,html,css,search-engine,Javascript,Html,Css,Search Engine,为什么要使用或需要使用具有hidden属性的额外输入元素来创建一个在内部搜索给定网站的网站搜索框 <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" /> <

为什么要使用或需要使用具有hidden属性的额外输入元素来创建一个在内部搜索给定网站的网站搜索框

<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>

以上操作将失败,因为我不能(或我可以?)针对value属性!但是,对于像这样的一个非常小的功能,使用Javascript似乎有点过头了。几乎就像在悬停效果中使用JS而不是CSS pseudo:hover一样。

这里
sitesearch
是传递给google的查询参数,它告诉google搜索特定的网站,所以需要这个属性,对于javascript代码, 我认为通过css3的
content
attribute可以实现同样的效果,它将在现代浏览器中工作

编辑:我尝试使用
内容
,但似乎不起作用

为什么我要使用,或者需要使用额外的输入元素 属性hidden,以创建搜索网站的网站搜索框 给定的网站内部

<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>
无论如何,你必须告诉搜索引擎,你想限制搜索到一个特定的网站。通常,这是通过一个隐藏的输入字段来完成的,因为在提交表单时会包含该字段,但不会显示给用户

但是,它不需要是隐藏的元素。您可以将其放入
文本
单选按钮
复选框
选择
。唯一的要求是,它被发送到搜索引擎的名称为“sitesearch”,并与您选择的网站的价值

我真的需要使用Javascript onfocus=“this.value=””来清除吗 用户单击后“搜索www.example.com”的文本/值 在上面

您可以从头设置
value='
,并使用新的html5属性
placeholder='Search www.example.com'
。或者在页面的某个地方使用描述性文本

但是,在一个非常小的应用程序中使用Javascript似乎有点过头了 像这样的功能。几乎就像使用JS进行悬停效果一样 而不是CSS伪:悬停


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

您是指:before和:after伪选择器中的“内容”吗?在本例中,您不需要javascript。设置
value=''
并使用HTML5属性
placeholder='Search www.example.com'