在将Dom数据传递到Chrome扩展弹出式HTML时一无所获

时间:2019-01-16 01:00:15

标签: google-chrome google-chrome-extension

我在DOM上具有$('.part-name span').text()的某些值时,弹出html上的值为空,并且可以通过chrome控制台将其打印出来

enter image description here

我有一个 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

0 个答案:

没有答案