Chrome扩展程序消息作为对象传递

我从内容脚本发送消息到后台页面。 该消息是一个URL,然后在后台获取ajax解析。 当我console.log数据检索到background.js控制台日志是纯html,但是当我发送消息回我的内容脚本消息突然在一个对象,我不知道为什么。

这是我的代码:

Content_Script.js:

chrome.runtime.sendMessage({greeting: URL}, function(response) {
      console.log(response.farewell); //logs an object: Object {farewell: Object}
      $('#stats-table2').append(response.farewell); //doesn't output anything.
    });

Background.js:

chrome.runtime.onMessage.addListener(
  function(message, sender, sendResponse) {
      getStats(message, sender, sendResponse);
      return true;
});

function getStats(message, sender, sendResponse){
   $.ajax({
     url: message.greeting,
     dataType: 'text',
     success: function(data) {
          var info = $("<div>").html(data)[0].getElementsByTagName("table")[1];
          if(info != undefined) {
            console.log(info); //logs pure HTML into the console..
            sendResponse({farewell:info}); //sends message back.
          }

      }
  });
}

我已经为重要部分添加了评论。我似乎无法弄清楚这一点,这让我发疯。 有任何想法吗? 谢谢!


您无法通过消息传递DOM节点; 数据必须是JSON序列化的,并且DOM节点不是。

仅传递您真正需要的数据(例如textContent ),然后重新构建另一侧的节点。

链接地址: http://www.djcxy.com/p/91163.html

上一篇: Chrome extension message being passed as object

下一篇: Chrome Extension message passing : verify the sender