Javascript 打开新浏览器选项卡后,将焦点切换到该选项卡

Javascript 打开新浏览器选项卡后,将焦点切换到该选项卡,javascript,Javascript,在下面的脚本中,一旦按下按钮,就会打开一个新的带有Google的浏览器选项卡。然后,我想填写这个新打开的选项卡上的搜索框 如何将焦点切换到这个新选项卡,以便等待它完全加载,然后填充搜索框 <button id="start">Google</button> <script> function open_google_in_new_tab() { var url = "https://www.google.com";

在下面的脚本中,一旦按下按钮,就会打开一个新的带有Google的浏览器选项卡。然后,我想填写这个新打开的选项卡上的搜索框

如何将焦点切换到这个新选项卡,以便等待它完全加载,然后填充搜索框

<button id="start">Google</button>  

<script>
    function open_google_in_new_tab() {
        var url = "https://www.google.com";
        window.open(url);
        window.onload(fill_search_box()); // here it will try to operate on the old tab
    };

    function fill_search_box() {
        var search_box = document.getElementsByName("q")[0];
        search_box.value = "Some text";
    };

    var start_button = document.getElementById("start");
    start_button.addEventListener("click", open_google_in_new_tab);
</script>
Google
函数在新选项卡()中打开谷歌{
变量url=”https://www.google.com";
窗口打开(url);
window.onload(fill_search_box());//在这里,它将尝试对旧选项卡进行操作
};
函数填充搜索框(){
var search_box=document.getElementsByName(“q”)[0];
search_box.value=“一些文本”;
};
var start_button=document.getElementById(“开始”);
开始按钮。添加EventListener(“单击”,在新选项卡中打开谷歌);

不幸的是,使用Javascript无法做到这一点

然而,如果你愿意尝试,这可能会让你取得类似的成就

您可以通过Google网站查询字符串中名为“q”的参数来操作搜索字符串。因此,为了让用户进入谷歌搜索这个特定的单词,你需要在它上面附加关键字。大概是这样的:

var url = "https://www.google.com?q=searchKeyword";

您不能从脚本中准确地将另一个文档中的另一个元素作为目标,但是,您可以使用查询字符串设置Google textbox的textbox值:

www.google.com?q=SearchTerm
创建搜索词时,还应使用
encodeURI
确保附加的搜索查询符合URL标准

此外,如果您希望在另一个标记中打开窗口,可以使用
window.open(url,“\u blank”)
打开

见下例:

注意:-由于代码段限制,该页面将无法打开-因此请在您自己的浏览器中运行

Google
函数在新选项卡()中打开谷歌{
var text=“一些文本”;
变量url=”https://www.google.com?q=“+编码URI(文本);
console.log(url)
打开(url,“U空白”);
};
var start_button=document.getElementById(“开始”);
开始按钮。添加EventListener(“单击”,在新选项卡中打开谷歌);

这不能通过JavaScript实现,但您可以配置浏览器,使其在新选项卡打开时立即切换到新选项卡。但我的实际用例更复杂。我想我可以在代码中间切换选项卡焦点,例如,在新打开的选项卡中执行一些操作,原始选项卡将所做的操作写入HTML表。我可以通过VBA做类似的事情-在Windows shell中迭代并按名称截取Internet Explorer选项卡。谢谢Nick。请看我对holydragon回应的评论,我认为这也适用于这里。