如何访问页面's脚本上下文
How to Get Access to Page's Script Context
我的插件使用内容脚本与页面交互。但它也需要访问页面的javascript,以便运行页面的某个例程。因此,我的内容脚本需要访问页面的脚本上下文。
这就是我的意思。
Addon使用main.js访问content.js,并使用消息进行通信。
但是网页(正在向其中注入content.js)有自己的javascript。我的content.js需要访问该上下文,这样它才能从那里的变量中获取值。
一个人怎么能得到它?
我一直在阅读这些mdn文档,但它们似乎是在谈论一个你自己编写的html页面,就像你对首选项页面所做的那样。但在我的情况下,我正在与一个外部网站合作,而不是仅仅为插件编码的东西。
MDN页面上列出的方法也适用于外部页面,而不仅仅适用于您自己的页面。
即unsafeWindow.myPageVar
将起作用。
这是有效的:
var script = document.createElement("script");
script.innerHTML = "alert( myPageVar );";
document.body.appendChild( script );
这要归功于这个家伙。
然而,我不知道这是否是最好的方法。我希望其他比我更有见识的人能回答。
以下是如何返回值:
var retval = unsafeWindow.SomePageFunction();
alert(retval);
它被称为"不安全",因为你永远不知道页面的内容可能会被更改或更改。插件与页面脚本交互时就是这样。
相关文章:
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- js脚本是否可以在同一个文件中获得在EJS上下文/页面中编写的变量
- 谷歌上下文小工具第一次没有加载谷歌应用程序脚本>需要实施授权流程
- Java 脚本 eval() 函数属于哪个对象?此外,在调用 eval() 函数时传递执行上下文
- 当作为脚本运行时.js Node中“this”的上下文是什么
- 正则表达式映射在 Firefox 上下文菜单内容脚本中
- 咖啡脚本 - 保留类上下文和事件上下文
- 如何避免在 js/ajax 脚本中对应用程序上下文路径进行硬编码
- 如何访问页面's脚本上下文
- 在非持久性后台脚本上添加上下文菜单项
- 在内容脚本得到响应之前,禁止启动上下文菜单
- chrome扩展的浏览器操作、后台脚本和内容脚本之间通信的上下文和方法
- Node.js:根据上下文切换npm脚本
- 上下文用于匿名qt脚本函数
- Django:在脚本中使用上下文变量
- 如何运行脚本与自定义全局上下文在Firefox chrome浏览器
- 从java脚本中调用primefaces上下文菜单
- 为什么在结束上下文之前评估动态内联脚本标记
- Javascript 在控制台中工作,但不在脚本标签内工作.控制台的上下文是什么
- 我如何避免nodejs虚拟机脚本函数调用失去上下文时,调用的函数本身是在上下文中