我正在使用此表单进行搜索
<form name="formchercher" method="post" target="_blank">
Recherche : <input id="keyword" type="text" name="rechercher"> <input type="button" value="go!" onclick="return search()">
</form>
当我点击按钮时,它会调用此功能:
function search() {
//var keyword = document.forms["myform"]["fname"].value;
document.forms["formchercher"].action="http://www.biaugerme.com/index.php"
document.forms["formchercher"].submit();
document.forms["formchercher"].action="http://www.germinance.com/index.php"
document.forms["formchercher"].submit();
document.forms["formchercher"].action="http://www.grainesdelpais.com/"
document.forms["formchercher"].submit();
document.getElementById("keyword").name = "recherche";
document.forms["formchercher"].action="http://www.magellan-bio.fr/recherche.html"
document.forms["formchercher"].submit();
document.getElementById("keyword").name = "q";
document.forms["formchercher"].action="http://www.semencesdupuy.com/fr/catalogsearch/result/"
document.forms["formchercher"].method="get";
document.forms["formchercher"].submit();
document.getElementById("keyword").name = "search_query";
document.forms["formchercher"].action="http://www.semaille.com/fr/recherche"
document.forms["formchercher"].submit();
}
我正在为每个网站更改表单的操作,然后再次提交表单。
此代码的问题在于它只打开一个标签并显示上一个网站的结果。
它适用于每个网站。如果我评论函数中的所有内容但是一个网站,它会在新标签中正确显示该网站的结果。
如何让这段代码打开6个不同的标签并从每个网站返回结果?
答案 0 :(得分:2)
这里的关键是,浏览器会阻止除最后一个之外的所有提交。使用setTimeout是防止这种情况发生的一种方法,但是超时应该足够长,以便在下一次提交之前完成一次提交。否则,浏览器会阻止其余部分。在这种情况下,您可以提交例如其中的3个,但不能提交其余的。 在代码下方,我测试并打开了您在问题中列出的所有6个网站。
<form name="formchercher" target="_blank" method="post" onsubmit="search()">
Recherche : <input id="keyword" type="text" name="rechercher"> <input type="submit" value="go!" >
</form>
-
function search() {
setTimeout(function(){
document.forms["formchercher"].action="http://www.biaugerme.com/index.php"
document.forms["formchercher"].submit();
}, 1000);
setTimeout(function(){
document.forms["formchercher"].action="http://www.germinance.com/index.php"
document.forms["formchercher"].submit();
}, 2000);
setTimeout(function(){
document.forms["formchercher"].action="http://www.grainesdelpais.com/"
document.forms["formchercher"].submit();
}, 3000);
setTimeout(function(){
document.getElementById("keyword").name = "recherche";
document.forms["formchercher"].action="http://www.magellan-bio.fr/recherche.html"
document.forms["formchercher"].submit();
}, 4000);
setTimeout(function(){
document.getElementById("keyword").name = "q";
document.forms["formchercher"].action="http://www.semencesdupuy.com/fr/catalogsearch/result/"
document.forms["formchercher"].method="get";
document.forms["formchercher"].submit();
}, 5000);
setTimeout(function(){
document.getElementById("keyword").name = "search_query";
document.forms["formchercher"].action="http://www.semaille.com/fr/recherche"
document.forms["formchercher"].submit();
}, 6000);
}
这篇文章中提到了另一个解决方案Submit two forms with one button(查看第二个答案)。 我相信你可以进行ajax调用,一旦成功,你可以调用下一个,依此类推。