Google カスタム検索コードはフォーム タグとして提供されます。ただし、Asp.net では、1 つのページに 1 つのフォーム タグしか使用できません。コードを aspx ページに含めることができるようにコードを実装する最良の方法は何ですか (たとえば、マスターページまたはナビゲーション要素の一部として)。
xgene
質問する
6140 次
4 に答える
7
ASP.NET ページには複数のフォーム タグを含めることができます。制限は、サーバー側 (runat="server") フォーム タグにあります。
1 つだけが runat="server" 属性を持ち、1 つが他のタグに含まれていない限り、2 つ (またはそれ以上) のフォーム タグを実装できます。例:
<body>
<form action="http://www.google.com/cse" id="cse-search-box"> ... </form>
<form runat="server" id="aspNetform"> ... </form>
<body>
于 2008-09-16T18:08:36.270 に答える
2
複数のフォーム タグを使用できる場合もありますが、ネストできないことに注意してください。そのシナリオでは、あらゆる種類の奇妙なことに遭遇します (たとえば、ネストされたフォームの開始タグが明らかに無視され、終了タグが「親」フォームを閉じてしまうケースを見たことがあります)。
于 2008-09-16T18:13:08.943 に答える
1
フォーム タグを削除し、javascript を使用してクエリを送信する必要があります。http://my6solutions.com/post/2009/04/19/Fixing-Google-Custom-Search-nested-form-tags-in-asp-net-pages.aspxを ご覧ください。
前後のコードも含めました。blogengine .net と統合するために私が行ったことを見ることができます。
于 2009-04-20T08:05:04.233 に答える
0
Javascriptを使用できます:
<input name="Query" type="text" class="searchField" id="Query" value="Search" size="15" onfocus="if(this.value == 'Search') { this.value = ''; }" onblur="if(this.value == '') { this.value = 'Search'; }" onkeydown="var event = event || window.event; var key = event.which || event.keyCode; if(key==13) window.open('http://www.google.com/search?q=' + getElementById('Query').value ); " /><input name="" type="button" class="searchButton" value="go" onclick="window.open('http://www.google.com/search?q=' + getElementById('Query').value );" />
于 2008-09-16T18:21:21.760 に答える