gpt4 book ai didi

调试 Chrome 扩展的内容脚本

转载 作者:行者123 更新时间:2023-12-03 06:10:36 27 4
gpt4 key购买 nike

一般问题

你好!我正在深入研究 Chrome 扩展的世界,但在降低整体工作流程方面遇到了一些问题。谷歌最近似乎转而大力提倡事件页面,而不是将所有内容都保留在background.js和background.html中。我认为这意味着我们应该将大部分扩展逻辑传递给内容脚本。

Google's Event Page primer ,他们的内容脚本列在manifest.json 文件中。但在他们的事件页面示例扩展中,它是通过background.js中的以下代码块引入的:chrome.tabs.executeScript(tab.id, {file: "content.js"}, function() { }) ;

这种方式相对于另一种方式有什么优势?

我的代码

我将继续采用注入(inject)内容脚本的编程方式,例如 Google 的示例。

manifest.json

{
"manifest_version": 2,
"name": "Test",
"description": "Let's get this sucker working",
"version": "0.0.0.1",
"permissions": [
"tabs",
"*://*/*"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_icon": "icon.png"
}
}

背景.js

chrome.browserAction.onClicked.addListener(function() {
console.log("alert from background.js");
chrome.tabs.executeScript({file: "jquery-2.0.2.min.js"}, function() {
console.log("jquery Loaded");
});
chrome.tabs.executeScript({file: "content.js"}, function() {
console.log("content loaded");
});
});

内容.js

console.log('you\'r in the world of content.js');
var ans = {};

ans.createSidebar = function() {

return {
init: function(){
alert("why hello there");
}
}
}();

ans.createSidebar.init();

我能够让前 3 个 console.log 语句显示在后台页面的调试器中。我还可以从 content.js 获取警报以显示在任何网站中。但我无法从 content.js 中看到 console.log ,也无法从 content.js 中查看任何 JS。我尝试查看后台页面调试器的“源”选项卡的“内容脚本”部分。 SO 上的其他一些帖子建议添加 debugger; 语句以使其显示,但我没有任何运气。我见过的最接近的解决方案是 this post ,但是是通过在 list 中列出内容脚本来完成的。

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

内容脚本的 console.log 消息显示在网页的控制台中,而不是后台页面的检查器中。

如果打开了开发人员工具(针对注入(inject)内容脚本的网页),则添加调试器; 即可工作。

因此,在这种情况下,您应该先激活(网页的)开发人员工具,然后再单击浏览器操作图标,一切都会正常工作。

关于调试 Chrome 扩展的内容脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17119385/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com