gpt4 book ai didi

javascript - Firefox Sidebar 和 DOM 的 Document 对象

转载 作者:行者123 更新时间:2023-11-29 10:26:01 24 4
gpt4 key购买 nike

firefox侧边栏加载了一个网页,主文档加载了另一个网页。现在,我该如何通过 Firefox 侧边栏访问主文档对象?通过 firefox 侧边栏文档中的 Javascript 代码执行此操作以访问主文档的示例会很有帮助。

感谢您的回答。但是,我必须完善我的问题。主窗口加载了一些网页,侧边栏有一个网页。当单击侧边栏窗口上的链接时,我希望侧边栏窗口知道用户在主窗口中选择了哪些文本。我知道如何从窗口中获取选定的文本。只是侧边栏元素增加了我无法超越的问题的复杂性。

@PConory:

我喜欢你的回答,但是当我尝试时出现错误:

Error: Permission denied to create wrapper for object of class UnnamedClass.

谢谢。

最佳答案

据我所知,您实际上是在边栏中加载网站(选中“在边栏中加载此书签”)。如果是这种情况,并且侧边栏是否正在打开主窗口页面。您可以使用 window.postMessage 在它们之间进行通信。但正如我所说,侧边栏页面必须打开主页,因为您需要窗口引用才能发布消息。

边栏.js

var newwin = window.open('http://otherpage')
newwin.onload = function()
{
newwin.postMessage('Hey newwin', 'http://sidebar');
};

mainpage.js
window.addEventListener('message',function(e)
{
if(message.origin == 'http://sidebar')
alert('message from sidebar');
},false);

使用它您仍然无法访问文档,但可以在它们之间进行通信并编写您想要进行的任何更改的脚本。

编辑:再考虑一下,如果您从侧边栏打开窗口,您将拥有它的 DOM。 var newwin = window.open('blah'); newwin.document 使 postMessage 漏洞变得毫无意义。

关于javascript - Firefox Sidebar 和 DOM 的 Document 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/145770/

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