gpt4 book ai didi

javascript - 从 chrome 扩展中注入(inject)函数/变量到页面

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:49:47 25 4
gpt4 key购买 nike


我正在编写一个 Chrome 扩展程序,为用户访问的某些页面添加功能。
为此,我需要注入(inject)一些页面需要能够调用的变量和函数。
这些变量/函数在内容脚本中生成。

但是,由于内容脚本运行在一个隐蔽的环境中,因此宿主页面无法访问它。

根据这篇文章: http://code.google.com/chrome/extensions/content_scripts.html#host-page-communication内容脚本和主机页面可以通过添加事件通过 DOM 进行通信。
但这是一种糟糕的做事方式,我真的很想看到一些可以轻松注入(inject)方法/变量的方法。

有这种可能吗?

谢谢!

最佳答案

如果它仍然对任何人感兴趣,我已经找到了一个通过消息在内容脚本和页面本身之间进行通信的解决方案。

在发送脚本上是这样的:

window.postMessage({ type: "messageType", params: { param: "value", anotherParam: "value" } }, "*"/*required!*/);

然后在接收脚本上做这样的事情:

window.addEventListener("message", function(event) {
// We only accept messages from ourselves
if (event.source != window)
return;

switch (event.data.type) {
case "blabla":
// do blabla
// you can use event.data.params to access the parameters sent from page.
break;
case "another blabla":
// do another blabla
break;
}
});

关于javascript - 从 chrome 扩展中注入(inject)函数/变量到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10373379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com