无法在新窗口中打开javascript搜索引擎结果

时间:2016-03-15 21:01:03

标签: javascript html forms search

我正在使用这个script page的javascript搜索引擎,它允许我选择不同的提供商/搜索引擎来执行Google搜索,但是我试图在新窗口中打开它按下发送按钮,但没有成功。

我已经尝试过使用:

target="_blank"
<input type="button" value="Send" onClick="startSearch()" target="_blank">

并且没有任何反应,或者:

<form name="searchForm" target="_blank">

没有!

我也尝试使用_new而不是_blank,但也没用。

最后,我测试了w3schools.com example上建议的内容,但不幸的是再次失败。

伙计们,请帮忙吗?谢谢!

3 个答案:

答案 0 :(得分:1)

如果您想通过按钮打开新的标签链接,请尝试此操作

<a href="http://www.stackoverflow.com/" target="_blank">
    <input type="button" value="Send" />
</a>

答案 1 :(得分:0)

要在新窗口中打开链接,因为您使用<form>代替<a>链接,您必须更改示例中显示的javascript,首先在表单中添加ID所以它可以通过DOM轻松访问:

<form id="searchForm" name="searchForm" target="blank">

然后,更改最后一个javascript行而不是location.href,它会更改表单的操作并提交它:

document.getElementById("searchForm").action = finalSearchString;
document.getElementById("searchForm").submit();

示例:

https://jsfiddle.net/vj99ux9e/

答案 2 :(得分:0)

快速而又脏,你可以使用window.open();方法在新窗口中打开搜索,这里有一些更新的HTML:

<form method="GET" action="#" id="search-form">
    <p><label>Search for: <input type="text" id="q" /></label></p>
    <p><label>Search from: <select id="engine">
        <option selected="selected" value="http://www.google.com/search?q=">Google</option>
        <option value="http://www.bing.com/search?q=">Bing</option>
        <option value="http://search.yahoo.com/search?p=">Yahoo!</option>
        <option value="http://search.aol.com/aol/search?q=">AOL</option>
    </select></label></p>
    <p><input type="button" value="Send" id="send" /></p>
</form>

JavaScript:

<script>
    var ID = function(str){return(document.getElementById(str));};
    ID('send').addEventListener('click', function(){
        var search = ID('q').value, select = ID('engine'), engine = select.options[select.selectedIndex].value;
        if(!search) {
            alert('Please include a search string');
        } else {
            window.open(engine + search);
        }
    });
</script>

只需确保在页面末尾调用该内容或将其置于DOMContentLoaded事件或其他内容中。

MDN Docs on window.open()