创建 Chrome 扩展程序可以使您能够修改网页行为。其中一项需求是从页面检索全局变量,例如 Gmail 消息中的 GLOBALS 变量。
不幸的是,内容脚本在隔离环境中运行,无法直接访问页面的窗口属性,如 GLOBALS。 jQuery 的 .load() 函数无法检索它,从而导致 ReferenceErrors。尽管能够通过开发人员工具的控制台访问 GLOBALS,但还是会发生这种情况。
要弥合此通信差距,您可以采用以下两种方法之一:
1。脚本注入:
将新的脚本元素注入到页面上下文中。该脚本可以检索所需的数据并将其传递回内容脚本。
2.事件监听器:
使用事件监听器在页面和内容脚本之间传递数据。内容脚本可以侦听页面脚本触发的具有所需信息的自定义事件。
内容脚本(run_at:“document_end”):
<code class="js">var s = document.createElement('script'); s.src = chrome.extension.getURL('script.js'); (document.head || document.documentElement).appendChild(s); s.onload = function() { s.remove(); };</code>
Script.js(注入脚本):
<code class="js">setTimeout(function() { document.dispatchEvent(new CustomEvent('RW759_connectExtension', { detail: GLOBALS })); }, 0);</code>
以上是如何使用 Chrome 扩展程序访问 Gmail 邮件中的全局变量?的详细内容。更多信息请关注PHP中文网其他相关文章!