我在DOM上具有$('.part-name span').text()
的某些值时,弹出html上的值为空,并且可以通过chrome控制台将其打印出来
我有一个 popup.html 之类的
<html>
<head>
<script src="jquery.js"></script>
<script src="popup.js"></script>
</head>
<body>
Here is part name
<p class="output"></p>
</body>
</html>
和 manifest.json ,如
{
"name": "Hello World",
"version": "1.0",
"manifest_version": 2,
"description": "My first Chrome extension.",
"background" : {
"scripts": ["background.js"]
},
"permissions": [
"tabs"
],
"browser_action": {
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"content_scripts": [
{
"matches": ["http://*/*"],
"js": ["jquery.js","contentscript.js"],
"run_at": "document_end"
}
]
}
我在 contentscript.js 中
var fromDOM = $('.part-name span').text().trim();
chrome.runtime.sendMessage({method:'setTitle',title:fromDOM});
最后在 popup.js 中,我有
chrome.runtime.sendMessage({method:'getTitle'}, function(response){
$('.output').text(response);
});
没有收到任何错误,但是我得到的响应为null。正如我已经提到的那样,我确定我在DOM中有$('.part-name span').text()
了,我尝试将fromDOM
中的contentscript.js
硬编码为类似的东西
fromDOM = "App Test"
chrome.runtime.sendMessage({method:'setTitle',title:fromDOM});
但仍然在弹出html中获得null