我想做的是从网页触发一个事件,并将其捕获到注入该网页的内容脚本中。页面和内容脚本都加载了一个 jQuery 实例,它们无法访问彼此的变量,但可以访问同一个 DOM。
是否可以使用 jQuery 事件来做到这一点?它们实际上是如何在后台工作的?
页:
$('#elementID').trigger('stateChange', state)
内容脚本:
$('#elementID').on('stateChange', function(event, state) {...})
我想做的是从网页触发一个事件,并将其捕获到注入该网页的内容脚本中。页面和内容脚本都加载了一个 jQuery 实例,它们无法访问彼此的变量,但可以访问同一个 DOM。
是否可以使用 jQuery 事件来做到这一点?它们实际上是如何在后台工作的?
页:
$('#elementID').trigger('stateChange', state)
内容脚本:
$('#elementID').on('stateChange', function(event, state) {...})
这不适用于 jQuery 事件。最简单的方法是使用 HTML5 api window.postMessage()。Google Chrome 扩展文档中对此有很好的描述和示例:http ://code.google.com/chrome/extensions/content_scripts.html#host-page-communication