Javascript 通过google打包应用程序访问网站的DOM

Javascript 通过google打包应用程序访问网站的DOM,javascript,dom,google-chrome-extension,google-chrome-app,Javascript,Dom,Google Chrome Extension,Google Chrome App,我的目标是为chrome编写一个应用程序,通过XhtPrequest将网页DOM的详细信息传递给本地web服务器。 为了访问网站的dom,通常将选项卡与以下内容脚本结合使用: chrome.tabs.create({ url: "www.example.com" }); chrome.tabs.executeScript(null, {file: "content_script.js"}); 然后使用消息传递系统将内容传递给后台脚本 不幸的是,当我这样做的时候,我需要向清单中添加“tabs”权

我的目标是为chrome编写一个应用程序,通过XhtPrequest将网页DOM的详细信息传递给本地web服务器。 为了访问网站的dom,通常将选项卡与以下内容脚本结合使用:

chrome.tabs.create({ url: "www.example.com" });
chrome.tabs.executeScript(null, {file: "content_script.js"});
然后使用消息传递系统将内容传递给后台脚本

不幸的是,当我这样做的时候,我需要向清单中添加“tabs”权限,这对于打包的应用程序是不允许的,仅对于扩展。我需要实现一个打包的应用程序,因为在通常的扩展中,不允许套接字连接(我有时需要)

我还尝试了这里的建议:

但是,

chrome.app.window.create 
仅适用于本地html文件,不适用于外部网站

我的问题是: (如何)在打包的应用程序中访问网站的dom是可能的?

您可以尝试使用用于Chrome应用程序的方法并通过该方法注入自定义脚本


请记住在清单文件中指定
“webview”
权限

非常感谢!我完全按照你说的做了,约瑟夫·波特利。 守则:

main.js

 chrome.app.window.create('webview.html', {},
    function (createdWindow) {
      var win = createdWindow.contentWindow;
      win.onload = function () {
      var webview =  win.document.querySelector('#webview');
      webview.setAttribute("src", "http://www.example.com");
       webview.addEventListener("contentload", function () {

        webview.executeScript({file: "content_script.js"}, function(result) {});
        chrome.runtime.onMessage.addListener(
          function(request, sender, sendResponse) {
              if(request.dom) {
                plugin.sendDom(request.dom, request.browser);
              }
          });
      });
    }
  });
...
var body = document.getElementsByTagName("body")[0];    
var dom = {root: domTraverser.recurseDomChildren(body)};
chrome.runtime.sendMessage({dom:dom, browser: getBrowserName()});
webview.html

<!doctype html>
<html>
  <body>
        <webview id="webview" style="height:100%;width:100%"/>
  </body>
</html>