1

特定のWebサイトを内部で検索するWebサイト検索ボックスを作成するために、hiddenの属性を持つ追加のinput要素を使用している、または使用する必要があるのはなぜですか。

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

さらに、ユーザーがクリックしたら、Javascriptを使用onfocus="this.value=''"して「Searchwww.example.com」のテキスト/値をクリアする必要がありますか。なぜこれが機能しないのか、というのは、を介して「属性」を「ターゲット」にできないためだと思います。CSSであり、特定のHTML属性に「代替」CSSプロパティはありません。

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

value属性をターゲットにできない(またはターゲットにできない)ため、上記は失敗します。しかし、このような非常に小さな機能にJavascriptを使用するのはやり過ぎのようです。CSS pseudo:hoverではなく、ホバー効果にJSを使用するのとほとんど同じです。

4

2 に答える 2

2

特定のWebサイトを内部で検索するWebサイト検索ボックスを作成するために、hiddenの属性を持つ追加のinput要素を使用している、または使用する必要があるのはなぜですか。

どういうわけかあなたはあなたが特定のサイトに検索を制限したいことを検索エンジンに伝えなければなりません。通常、これは非表示の入力フィールドを介して行われます。これは、フォームが送信されたときに含まれますが、ユーザーには表示されないためです。

ただし、非表示の要素である必要はありません。text、、、などにも入れることがradiobuttonできcheckboxますselect。唯一の要件は、「sitesearch」という名前で、選択したWebサイトの値で検索エンジンに送信されることです。

ユーザーがクリックしたら、Javascript onfocus = "this.value =''"を使用して、「Searchwww.example.com」のテキスト/値をクリアする必要がありますか。

最初から設定value=''して、新しいhtml5属性を使用できますplaceholder='Search www.example.com'。または、ページのどこかに説明テキストを使用します。

しかし、このような非常に小さな機能にJavascriptを使用するのはやり過ぎのようです。CSS pseudo:hoverではなく、ホバー効果にJSを使用するのとほとんど同じです。

あなたはそれをやり過ぎだと思うかもしれませんが、何年もの間、それがそれを行う唯一の方法でした。JavaScriptは、CSSが実装されるずっと前からブラウザに存在していました。:hoverCSS2まで導入されなかったため、ホバー効果はjavascriptで実装する必要がありました。この場合に使用するプレースホルダー効果は、HTML5で最近実装されたばかりです。

于 2012-09-02T18:25:16.403 に答える
1

これsitesearchがグーグルに渡されたクエリパラメータで、グーグルに特定のウェブサイトを検索するように指示します。そうです、この属性が必要です。javascriptコードに関しては、最新のブラウザで機能するcss3の属性で 同じことを実行できると思います。content

編集:使用してみcontentましたが、機能しないようです

于 2012-09-02T18:11:29.380 に答える