sha*_*ath 1 javascript google-chrome chromium google-chrome-extension
使用Google Chrome扩展程序中的内容脚本传递邮件时遇到问题我的代码结构如下所示:
popup.html:
var oList;
function getHTML()
{
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {action:"getHTML"}, function handler(response) {
oList = response.dom;
});
});
alert("oList = "+oList );
}
Run Code Online (Sandbox Code Playgroud)
我的内容脚本看起来像这样:
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
if(request.action == "getHTML"){
sendResponse({dom: document.getElementsByTagName("HTML").length});
}
});
Run Code Online (Sandbox Code Playgroud)
当我通过oList = response.dom;在我的popup.html 中的" " 处设置断点来调试我的代码时,我从内容脚本中获得了正确的值集.但是在执行扩展时,alert("oList = "+oList );popup.html中的" "代码似乎在它进入服务器之前首先执行..因此,它的值没有被设置..有人可以告诉我,我在某处错了吗?
大多数Chrome API方法都是异步的.这意味着当您调用它们时,脚本不会等待它们的响应并且只是继续执行.如果你想在响应时执行某些操作,你应该把它放在回调函数中:
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendRequest(tab.id, {action:"getHTML"}, function handler(response) {
oList = response.dom;
alert("oList = "+oList );
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1199 次 |
| 最近记录: |