相关疑难解决方法(0)

从Chrome扩展程序中的background.js读取控制台消息的位置?

我刚开始使用谷歌Chrome扩展程序,我似乎无法从我的后台js登录到控制台.发生错误时(例如,由于语法错误),我也找不到任何错误消息.

我的清单文件:

{
  "name": "My First Extension",
  "version": "1.0",
  "manifest_version": 2,
  "description": "The first extension that I made.",
  "browser_action": {
    "default_icon": "icon.png"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
    "pageCapture",
    "tabs"
  ]
}
Run Code Online (Sandbox Code Playgroud)

background.js:

alert("here");
console.log("Hello, world!")
Run Code Online (Sandbox Code Playgroud)

当我加载扩展时,警报出现但我没有看到任何记录到控制台.我究竟做错了什么?

debugging console google-chrome-extension google-chrome-devtools

176
推荐指数
5
解决办法
7万
查看次数

从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://*/*"
  ]
}
Run Code Online (Sandbox Code Playgroud)

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>
Run Code Online (Sandbox Code Playgroud)

content.js:

chrome.extension.onRequest.addListener(function(request, sender, callback) {
    if (request.action == "getSource") {
        callback(document.getElementsByTagName('html')[0].innerHTML);
    }
});
Run Code Online (Sandbox Code Playgroud)

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

html google-chrome-extension

74
推荐指数
1
解决办法
9万
查看次数

制作/查找html5验证器bookmarklet

我想找到或制作一个书签,它将使用W3C HTML 5验证器验证当前查看页面的html内容.

我找到了两个bookmarklet,我试图让一个像一个像一个有点像另一个,但我不知道如何做到这一点.

Chris Coyier有一个HTML5验证书签,除了使用页面URI之外,它运行良好,因此不适用于本地测试的站点:

javascript:(function(){%20function%20fixFileUrl(u)%20{%20var%20windows,u;%20windows%20=%20(navigator.platform.indexOf("Win")%20!=%20-1);%20%20/*%20chop%20off%20file:///,%20unescape%20each%20%hh,%20convert%20/%20to%20\%20and%20|%20to%20:%20*/%20%20u%20=%20u.substr(windows%20?%208%20:%207);%20u%20=%20unescape(u);%20if(windows)%20{%20u%20=%20u.replace(/\//g,"\");%20u%20=%20u.replace(/\|/g,":");%20}%20return%20u;%20}%20/*%20bookmarklet%20body%20*/%20var%20loc,fileloc;%20loc%20=%20document.location.href;%20if%20(loc.length%20>%209%20&&%20loc.substr(0,8)=="file:///")%20{%20fileloc%20=%20fixFileUrl(loc);%20if%20(prompt("Copy%20filename%20to%20clipboard,%20press%20enter,%20paste%20into%20validator%20form",%20fileloc)%20!=%20null)%20{%20document.location.href%20=%20"http://validator.w3.org/file-upload.html"%20}%20}%20else%20document.location.href%20=%20"http://validator.w3.org/check?uri="%20+%20escape(document.location.href);%20void(0);%20})();
Run Code Online (Sandbox Code Playgroud)

我也找到了这个,它通过抓取当前页面的html起作用,但我无法弄清楚如何使它做html5 ...在代码中有对doctype的引用,我试过将其更改为html5, html500等,并删除它完全希望它会自动检测..但无济于事:

javascript:(function(){var h=document;var b=h.doctype;var e="<!DOCTYPE "+b.name.toLowerCase()+' PUBLIC "'+b.publicId+'" "'+b.systemId+'">\n';var g=h.documentElement.outerHTML;var f="http://validator.w3.org/check";var i={prefill_doctype:"html401",prefill:0,doctype:"inline",group:0,ss:1,st:1,outline:1,verbose:1,fragment:e+g};var a=h.createElement("form");a.setAttribute("method","post");a.setAttribute("target","_blank");a.setAttribute("action",f);for(var j in i){var c=h.createElement("input");c.setAttribute("type","hidden");c.setAttribute("name",j);c.setAttribute("value",i[j]);a.appendChild(c)}if(navigator.appCodeName=="Mozilla"){h.body.appendChild(a)}a.submit()})();
Run Code Online (Sandbox Code Playgroud)

javascript validation html5 bookmarklet w3c-validation

5
推荐指数
1
解决办法
1326
查看次数