我有一个简单的图像搜索表单,该表单会在新窗口中打开:
HTML
<input type="radio" id="google" name="image" onclick="googleImages();" checked/>
<label for="google">Google Images</label>
<input type="radio" id="unsplash" name="image" onclick="poly();"/>
<label for="unsplash">Poly</label>
<form id="form" method="GET" action="https://www.google.com/search?q=">
<input id="input" type="text" name="q" value="" required>
<input id="button" type="submit" value="Search" onclick="this.form.target='_blank';">
<input id="helper" type="hidden" name="tbm" value="isch">
</form>
JS
var
form = document.getElementById("form"),
input = document.getElementById("input"),
button = document.getElementById("button"),
helper = document.getElementById("helper");
function googleImages() {
form.action="https://www.google.com/search?q=";
input.name="q";
helper.name="tbm";
helper.value="isch";
}
function poly() {
form.action="https://poly.google.com/search/";
input.name="";
helper.name="";
helper.value="";
}
代码有效here
问题
当我在搜索表单中更改为Poly时,查询字符串继续设置为“?”在URL输出中,在搜索结果页面上产生错误。
Google图片使用一些网址参数,例如google.com/search?q=lion&tbm=isch,我可以在表格中复制它们。但是,Poly不使用查询字符串(?)或参数(param = value),它们仅使用poly.google.com/search/lion
之类的“ URL /值”问题
当我选择Poly时,如何创建一个查询字符串“?”的函数?删除提交时生成输出“ URL /值”?换句话说,将搜索字词(值)作为URL的一部分传递而无需任何查询或参数。
答案 0 :(得分:0)
对于poly,您似乎正导航到其他URL。您不希望或不需要将其作为表单提交。而不是在JavaScript中提交表单调用window.location.href =。