猿问

从chrome扩展获取当前页面的源HTML

我有一个chrome扩展名。我需要从当前页面的HTML源代码进行分析。我在这里找到了各种带有背景页面和内容脚本的解决方案,但没有人帮助我。这是我到目前为止:

manifest.json:


{

  "name": "Extension",

  "version": "1.0",

  "description": "Extension",

  "browser_action": {

    "default_icon": "bmarkred.ico",

    "popup": "Test.html"

  },

  "content_scripts": [

    {

      "matches": ["http://*/*"],

      "js": ["content.js"]

    }

  ],

  "background": {

    "page": "backgroundPage.html"

  },

  "permissions": [

    "cookies",

    "tabs",

    "http://*/*", 

    "https://*/*"

  ]

}

background.html:


<html>

<head>

<script type="text/javascript">

    try {

        chrome.tabs.getSelected(null, function (tab) {

            chrome.tabs.sendRequest(tab.id, {action: "getSource"}, function(source) {

                alert(source);

            });

        });

    }

    catch (ex) {

        alert(ex);

    }

</script>

</head>

</html>

content.js:


chrome.extension.onRequest.addListener(function(request, sender, callback) {

    if (request.action == "getSource") {

        callback(document.getElementsByTagName('html')[0].innerHTML);

    }

});

警报始终警告未定义。即使我在content.js文件中将回调函数更改为:


callback('hello'); 

结果仍然相同。我究竟做错了什么?也许我正以错误的方式前进。我真的需要的是这个。当用户打开扩展弹出窗口时(仅此时),我需要当前页面的HTML,以便我可以分析它。有什么建议?


神不在的星期二
浏览 704回答 1
1回答
随时随地看视频慕课网APP
我要回答