Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在不单击弹出窗口的情况下将数据从popup.html发送到content_脚本_Javascript_Jquery_Checkbox_Google Chrome Extension_Popup - Fatal编程技术网

Javascript 如何在不单击弹出窗口的情况下将数据从popup.html发送到content_脚本

Javascript 如何在不单击弹出窗口的情况下将数据从popup.html发送到content_脚本,javascript,jquery,checkbox,google-chrome-extension,popup,Javascript,Jquery,Checkbox,Google Chrome Extension,Popup,这个问题我见过很多次,但我不明白。当我重新加载网页时,在popup.html中有一个我想要的数据给我true和false(复选框输入),给我该数据true或false。我阅读了文档消息传递,但当单击弹出窗口然后运行脚本时,我不希望出现这种情况 popup.js: chrome.runtime.sendMessage({request: "checkStatus"}); background.js: chrome.runtime.onMessage.addListener(function

这个问题我见过很多次,但我不明白。当我重新加载网页时,在popup.html中有一个我想要的数据给我true和false(复选框输入),给我该数据true或false。我阅读了文档消息传递,但当单击弹出窗口然后运行脚本时,我不希望出现这种情况

popup.js:

chrome.runtime.sendMessage({request: "checkStatus"});
background.js:

   chrome.runtime.onMessage.addListener(function(message,sender,sendResponse) {
    if (message.request == "checkStatus") {
     console.log(message.request)
     }
    });

该代码为我提供了“message.request”,但当我单击poup时。

如果不显示数据,就无法将数据从弹出窗口直接发送到内容脚本。 这是因为弹出实例只有在您看到它时才有效

解决方法是使用。 每次弹出窗口中的数据被更改时,只需通过消息发送到后台即可。
重新加载页面后,内容脚本可以要求返回数据(也可以使用消息)。

如果不显示数据,则无法将数据从弹出窗口直接发送到内容脚本。 这是因为弹出实例只有在您看到它时才有效

解决方法是使用。 每次弹出窗口中的数据被更改时,只需通过消息发送到后台即可。
重新加载页面后,内容脚本可以要求返回该数据(也可以使用消息传递).

您想说我先将数据发送到background.js,然后再发送content.js我这样做了,但我还是点击了弹出窗口来运行脚本@Deliaz@TeymurNəsirli我的意思是,你应该将所有设置和数据存储在后台,并使用弹出窗口作为界面进行更改。我是chrome扩展的新手,请稍微解释一下如何发送数据弹出窗口。js==>background.js==>contnet.js而不单击弹出窗口。İ如果您有链接,请与我分享我找不到清晰的链接。@TeymurNəsirli您仍然需要打开弹出窗口进行更改并将其发送到后台(否则为什么需要弹出窗口?)。但如果你在后台存储数据,你不需要再次打开弹出窗口,当您的内容脚本询问您想要的数据时,请说我将数据发送到background.js,然后发送content.js,我会这样做,但我再次点击弹出窗口来运行脚本@Deliaz@TeymurNəsirli我的意思是,你应该将所有设置和数据存储在后台,并使用弹出窗口作为界面进行更改。我是chrome扩展的新手,请稍做修改解释如何发送数据popup.js==>background.js==>contnet.js而不单击popup。İ如果您有链接,请与我分享我找不到清晰的链接。@TeymurNəsirli您仍然需要打开弹出窗口进行更改并将其发送到后台(否则为什么需要弹出窗口?)。但如果您将数据存储在后台,当内容脚本询问这些数据时,您不需要再次打开弹出窗口