Le code de recherche personnalisé de Google est fourni sous forme de balise de formulaire. Cependant, Asp.net n'autorise qu'une seule balise de formulaire sur une page. Quelle est la meilleure façon d'implémenter leur code afin de pouvoir l'inclure sur une page aspx (par exemple dans le cadre d'une page Master ou d'un élément de navigation).La meilleure façon d'implémenter Google Custom Search sur une page aspx
Répondre
Vous pouvez avoir plusieurs balises de formulaire sur une page ASP.NET. La limitation est sur les balises de formulaire côté serveur (runat = "serveur").
Vous pouvez implémenter deux balises de formulaire (ou plus) tant que l'une a l'attribut runat = "server" et qu'une autre n'est pas contenue dans l'autre. Exemple:
<body>
<form action="http://www.google.com/cse" id="cse-search-box"> ... </form>
<form runat="server" id="aspNetform"> ... </form>
<body>
Vous pouvez avoir plusieurs balises de formulaire, mais notez qu'elles ne peuvent pas être imbriquées. Vous rencontrerez toutes sortes d'étrangeté dans ce scénario (par exemple, j'ai vu des cas où la balise d'ouverture de la forme imbriquée est apparemment ignorée, puis sa balise de fermeture finit par fermer la forme "parent").
Vous pouvez utiliser 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);" />
Vous aurez besoin de retirer la balise form et utiliser javascript envoyer la requête. Jetez un oeil à http://my6solutions.com/post/2009/04/19/Fixing-Google-Custom-Search-nested-form-tags-in-asp-net-pages.aspx
J'ai également inclus le code avant et après. Vous pouvez donc voir ce que j'ai fait pour l'intégrer à blogengine .net.
Merci, ça fonctionne. – Sharique
Cela ne semble pas être une bonne solution. Qu'en est-il des utilisateurs qui ont javascript désactivé? –
Si vous pouvez séparer les 2 étiquettes de forme alors tout va bien. Sinon ... En fait, je me demande quel est le pourcentage de personnes qui désactive javascript ces jours-ci ... – sean