小编use*_*001的帖子

如何在chrome扩展的选项页面和后台页面之间进行通信

我遇到了问题.通过消息传递,我将DOM数据从内容脚本传输到后台页面.我想知道的是如何在选项页面和背景页面之间建立通信渠道.API chrome.extension.getBackgroundPage()没用.传统信息也不会传递sendRequestaddlistener运作.如何将此数据从后台页面传输到选项页面?有人可以提供一个经过测试的片段来解释吗?


这就是我一直在尝试的.在我的contentscript.js

    <script>
    var selected_Text ="";
    window.addEventListener("dblclick",function(event){

    selected_Text = String(window.getSelection());
    chrome.extension.sendRequest({greeting: "maprender",name:selected_Text},     function(response) {
        alert("reached here")
        console.log(response.farewell);
        });

//i am to then load options.html on DOM like this 
var Div = document.createElement("iframe");
Div.setAttribute('src', chrome.extension.getURL('options.html'));
Div.setAttribute("style","width:130px;height:80px;position:absolute;left:10px;");
Div.setAttribute("id","xyz");
document.body.appendChild(Div);
</script>
Run Code Online (Sandbox Code Playgroud)

我像这样在background.html上检索selected_Text

<script>
var Addr_details={
place:null
};
chrome.extension.onRequest.addListener(
  function(request, sender, sendResponse) {

    if (request.greeting == "maprender")
     {
        alert("reached here sendin resp"+request.name);
        Addr_details.place = request.name;
        sendResponse({farewell: "goodbye"});

     }
    else
      sendResponse({}); // snub them.
  });
</script>
Run Code Online (Sandbox Code Playgroud)

现在要在选项页面options.html访问此文本的值,我尝试了2个方法一个是使用chrome.extension.getBackgroundPage(),如下所示:

<script>
function …
Run Code Online (Sandbox Code Playgroud)

google-chrome google-chrome-extension

6
推荐指数
1
解决办法
3887
查看次数