我正在开发Google Chrome浏览器的扩展程序。
我无法弄清楚如何从“popup.html”页面访问当前的选项卡DOM对象。
有什么建议?

最佳答案

默认情况下,在popup.js/popup.html中,“文档”对象仅引用扩展程序的弹出窗口的文档。要获取特定选项卡(例如当前 Activity 的选项卡)的DOM,您需要使用content scripts communications。例如,我们需要通过extensionpopup向您的内容脚本发送请求,因此在popup.html中您可以执行以下操作:

chrome.tabs.getSelected(null, function(tab) {
  // Send a request to the content script.
  chrome.tabs.sendRequest(tab.id, {action: "getDOM"}, function(response) {
    console.log(response.dom);
  });
});

现在在内容脚本中,我们需要来自扩展名的listen for those events,因此在某些文件中我们将其命名为dom.js。
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
 if (request.action == "getDOM")
   sendResponse({dom: "The dom that you want to get"});
 else
   sendResponse({}); // Send nothing..
});

现在,请记住将manifest设置为包括内容脚本和选项卡权限。

关于javascript - 从 “popup.html”访问当前选项卡DOM对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1964225/

10-15 21:43