之前提问过一个相似的问题,不过描述比较随意,潜在的牵涉的东西太多不利于判断。我来痛定思痛自了个简化版的,尽可能复原实际情况。反复测试,但仍然没有什么眉目,按F12似乎没看到正在加载的项目,于是再次求助~
我的思路是,当一个tab被完全载入后,如果这个tab的网址是百度,那么就在一个backgourndscript上的一个叫myarray的数组里储存这个tab。另外再在popup界面设置一个按钮,按下去就输出myarray第一个元素的status。经测试,这第一个元素的status是loading,为何会这样?
以下是manifest.json
{ "manifest_version": 2,
"name": "demo",
"version": "1.0.0",
"description": "test",
"permissions": ["storage","tabs","activeTab","https://*/*" ],
"background":
{
"scripts": ["background.js"],
"persistent": false
},
"content_scripts":
[
{
"matches": ["https://www.baidu.com/*"],
"js": ["cc.js"],
"run_at": "document_end"
}
],
"browser_action":
{
"default_popup": "popup.html"
}
}
以下是background.js:
var myarray=[];
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
if(request.msgcheck=="ccjs"){myarray.push(sender.tab)}
if(request.msgcheck=="ppjs"){console.log(myarray[0].status);}
});
以下是:cc.js:
chrome.runtime.sendMessage({msgcheck:"ccjs"}, function(response) {});
以下是pp.js:
document.getElementById("bt1").addEventListener("click", function(){
chrome.runtime.sendMessage({msgcheck:"ppjs"}, function(response) {});
},false);
以下是popup.html:
<!DOCTYPE html>
<html>
<head>
<title>pp</title>
</head>
<body>
<input type="submit" value="开始" id="bt1"/>
<script src="pp.js"></script>
</body>
</html>