gpt4 book ai didi

javascript - chrome 扩展程序中的数据未从弹出窗口传递到背景

转载 作者:行者123 更新时间:2023-11-30 17:24:04 25 4
gpt4 key购买 nike

我想我掌握了它的窍门,但它就是不起作用...我不明白为什么。

list :

{
"name": "Dummy Extension",
"description": "Dummy Extension Description",
"version": "2.0",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Dummy Extension",
"default_popup": "popup.html"
},
"manifest_version": 2,
"content_scripts": [ {
"js": [ "jquery.min.js", "background.js" ],
"matches": [ "http://*/*", "https://*/*"]
}]
}

背景:

chrome.extension.onMessage.addListener( function(request,sender,sendResponse)
{
if( request.greeting === "GetURL" )
{
var tabURL = "Not set yet";
chrome.tabs.query({active:true},function(tabs){
if(tabs.length === 0) {
sendResponse({});
return;
}
tabURL = tabs[0].url;
sendResponse( {navURL:tabURL} );
});
}
}

Popup.html

<!DOCTYPE html>
<head>
<script src='popup.js'></script>
<script src='jquery.min.js'></script>
</head>
<body>
Hello World!
<br />
<input id="tabURL" type="text" />
<br />
<input value="SEND!" type="button" id="send" />
</body>
</html>

和popup.js

function getURL() {
chrome.extension.sendMessage({greeting: "GetURL"},
function (response) {
tabURL = response.navURL;
$("#tabURL").val(tabURL);
});
}

$("#send").click(getURL());

我只是想不通哪里出了问题,jquery 已定义,但我没有收到任何控制台错误。任何帮助都会很棒!

最佳答案

$("#send").click(getURL()); 在 DOM 完全构建之前执行并失败。此外,您需要将引用传递给 getURL,而不是执行它。

修复:

$(document).ready(function(){
$("#send").click(getURL);
});

顺便说一句,您可能在错误的控制台中查找错误。参见 this debugging tutorial用于弹出窗口。

关于javascript - chrome 扩展程序中的数据未从弹出窗口传递到背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24607021/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com