Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法设置属性';innerHTML';Chrome扩展中的null值_Javascript_Google Chrome_Google Chrome Extension - Fatal编程技术网

Javascript 无法设置属性';innerHTML';Chrome扩展中的null值

Javascript 无法设置属性';innerHTML';Chrome扩展中的null值,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,我正在尝试为Chrome做一个新的扩展,它将解析当前选项卡的HTML代码并处理它 这就是我目前所得到的 manifest.json { "name": "some name", "manifest_version": 2, "version": "0.2", "description": "does something", "browser_action": { "default_icon": "logo.png", "de

我正在尝试为Chrome做一个新的扩展,它将解析当前选项卡的HTML代码并处理它

这就是我目前所得到的

manifest.json

{
    "name": "some name",
    "manifest_version": 2,
    "version": "0.2",
    "description": "does something",
    "browser_action": {
        "default_icon": "logo.png",
        "default_popup": "popup.html"
    },
    "icons": {
      "128": "icon_128x128.png",
      "16": "icon_16x16.png",
      "48": "icon_48x48.png"
   },
    "background": {    
    "scripts": ["info.js", "mainme.js"]
  },
  "permissions": [
    "tabs", "http://*/*", "https://*/*"
  ]}
info.js

  function init() {
  var button = document.getElementById("clickhere");
  if(button.addEventListener){
     button.addEventListener("click", function() { 

    //function here
        chrome.tabs.executeScript(null,{file: "mainme.js"});


    //function end  

  }, false);
  } else if(button.attachEvent){
    button.attachEvent("onclick", function() { alert("alert");});
    }
  };
  if(window.addEventListener){
    window.addEventListener("load", init, false);
    } else if(window.attachEvent){
        window.attachEvent("onload", init);
    } else{
        document.addEventListener("load", init, false);
    }
mainme.js

  var maintest = document.getElementsByTagName('html')[0].innerHTML;
  var mtest = maintest.search("<body");
  document.getElementById("divy").innerHTML=mtest;
然后我有一些关于mainme.js的问题,我应该如何把代码放进去?我在想下面的事情

chrome.runtime.sendMessage({code:var maintest = document.getElementsByTagName('html')[0].innerHTML;var mtest = maintest.search("<body");}, function(response) {

window.document.getElementById("divy").innerHTML=mtest;

});
chrome.runtime.sendMessage({code:var maintest=document.getElementsByTagName('html')[0].innerHTML;var mtest=maintest.search(尝试替换

document.getElementById("divy").innerHTML=mtest;


由于Chrome扩展只在Chrome中运行,因此可以保证方法
addEventListener
已定义,而
attachEvent
未定义。因此不需要进行测试

据我所知,您正试图从当前打开的选项卡中提取内容,并将其显示在弹出窗口中。在不为您编写全部代码的情况下,以下是我的建议:

  • mainme.js
    脚本插入要提取数据的所有页面。您可以从
    manifest.json
    文件中执行此操作,有关详细信息,请参阅
  • 使用消息传递机制将数据从内容脚本传递到后台页面,然后再传递到弹出页面,有关详细信息,请参阅
背景页是扩展的基石。基本上,您的扩展应该如下所示:


网页背景页弹出页

感谢您的快速回答。我这样做了,但我得到了相同的错误:(我更新了我原来的帖子。你能再看一看吗?如果你不为
chrome.tabs.executeScript
提供一个选项卡ID,它默认为当前窗口的活动选项卡,所以至少那部分没有错:)的确:)我从答案中删除了那部分。谢谢你指出它。
chrome.runtime.sendMessage({code:var maintest = document.getElementsByTagName('html')[0].innerHTML;var mtest = maintest.search("<body");}, function(response) {

window.document.getElementById("divy").innerHTML=mtest;

});
document.getElementById("divy").innerHTML=mtest;
window.document.getElementById("divy").innerHTML=mtest;