簡體   English   中英

將簡單消息從 popup.html 傳遞到 background.js 時沒有任何操作

[英]No action in passing simple message from popup.html to background.js

我是 chrome 擴展編碼的新手,對 javascript 比較陌生。 擴展的類型是page_action 我試圖通過單擊 popup.html 中的按鈕向 background.js 發送一條簡單的消息。 我在這個網站上看到過類似的問題,但似乎沒有任何效果。 擴展的加載很好。 請幫忙

/* __background.js__  */

function checkForValidUrl(tabId, changeInfo,tab){
console.log("Extension loaded");
chrome.pageAction.show(tabId);
}

function readMessage (request, sender, sendResponse){
alert("reached");
console.log(request.greeting);
sendRequest({farewell:"goodbye"});
}

chrome.extension.onRequest.addListener(readMessage);
chrome.tabs.onUpdated.addListener(checkForValidUrl);


 /* __manifest.json__  */
{
"name": "DemoExtension",
"version": "1.0",
"manifest_version": 2,
"background": {
    "scripts": [
    "jquery.js",
    "background.js"
    ]
},

"description": "demo extension to learn coding chrome extensions.",
"icons": {
    "16": "images/16x16.png",
    "48": "images/48x48.png",
    "128": "images/128x128.png"
},

"page_action": {
    "default_icon": {
        "19": "images/19x19.png",
        "38": "images/38x38.png"
    },
    "default_title": "Demo extension",
    "default_popup": "popup.html"
},

"options_page": "options.html",

"permissions": [
    "tabs",
    "storage",
    "http://*/*",
    "https://*/*"
]   
 }

——

__popup.html__
<!DOCTYPE HTML>
<html>
<head>
    <title>Demo extension</title>
    <script src="./popup.js"></script>
</head>
<body>
    <button id="clickMe">Add</button>   
</body>
</html>

——

__popup.js__
function sendMessageToExtn() {
alert("reached in popup");
chrome.extension.sendMessage({
    greeting : "hello" }, 
            function(response) { console.log(response.farewell);
});
}

document.getElementById('clickMe').addEventListener('click', function () {
sendMessageToExtn();

});

我現在收到錯誤Uncaught TypeError: Cannot call method 'addEventListener' of null (anonymous function)

有一個類似的問題

解決了問題。 首先結合@apsillers 的建議。 然后最后通過移動

<script src="./popup.js"></script>

在身體從頭部,按鈕標簽下方。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM