如何从主选项卡运行功能的新选项卡?(谷歌Chrome)

How to run function on new tab from main tab? (Google Chrome)

本文关键字:选项 Chrome 谷歌 新选项 功能 运行      更新时间:2023-09-26

我需要打开控制台并在新选项卡上运行一个函数,我使用javascript打开了这个函数。打开部分很容易,但如何在其他选项卡上运行功能?

var google = window.open("http://google.com")

在阅读你的问题时,似乎你正在寻找打开开发控制台的弹出窗口?假设这就是你正在寻找的,你应该能够右键单击弹出的窗口并点击"Inspect Element"。然后从那里进入控制台。


如果你想通过编程的方式在弹出窗口中从父窗口运行一个函数,这里有一个好主意。

假设新窗口与您的窗口在同一域中,此解决方案可能适用于您。(浏览器支持有限)

在父页:

//store the function in localStorage
localStorage.runThis = function(){ alert("Hello world"); }
//open the popup window
newWindow = window.open("http://your-domain.com/your-page");

在弹出窗口中打开的页面:

//check if the function has been stored
if(typeof localStorage.runThis === "function"){
    //run the function in localStorage
    localStorage.runThis();
}

一个问题是该方法依赖于满足以下条件:

  • 浏览器支持localStorage
  • 父页面和弹出页面来自同一来源
  • 弹出页面必须实际查找有问题的函数并执行函数本身

这样做的一个缺点是,如果有人要去Javascript控制台并将自己的函数设置为localStorage,弹出页面将看到他们的函数并运行潜在的危险代码-一个安全漏洞。

一个常见的解决方案是使用本地存储。

if (typeof(Storage) !== "undefined") {
  // Code for localStorage/sessionStorage.
  localStorage.setItem("lastname", "Smith");
  var lastname = localStorage.getItem("lastname");
} else {
    // Sorry! No Web Storage support..
}