【发布时间】:2011-10-15 02:49:44
【问题描述】:
我对消息传递(content_script.js 发送请求,background.html 发送响应)和 JQuery $(document).ready() 函数之间的执行控制有疑问。
我在清单文件中设置了“run_at”:“document_start”,并根据文档。 content_script.js 将在 css 之后和任何脚本之前执行。在这种情况下,假设 content_script.js 改变了 html 页面的背景颜色,那么改变页面颜色的函数会在任何脚本之前被调用。
我的问题是关于 content_script.js 和 background.html 之间的消息传递。
如果我在以下方面是正确的: 例如事件
chrome.extension.sendRequest({storage: 'foo'}, function(response) {
runAfterResponseReceived();});
在 content_script.js 中定义,请求将在任何脚本运行之前发送到后台页面。并且一旦发送此请求,其他脚本就可以运行,而无需等待响应返回(解除阻塞)。所以当响应返回时,content_script.js 会找到一个空闲时间,并执行函数runAfterResponseReceived()。
那么,如何将其更改为阻塞行为,以便在返回响应后执行“任何脚本”。
我希望我已经解释了我的问题。 谢谢。
【问题讨论】:
标签: javascript google-chrome-extension google-chrome-devtools