添加自定义功能到chrome的控制台

xriantvc  于 2023-03-05  发布在  Go
关注(0)|答案(2)|浏览(197)

有没有可能在google-chrome中定制一些函数,这些函数在console中总是可用的(不管加载了什么页面)?例如,我希望有一个名为echo的函数,它只是console.log的一个 Package 器。这只是节省了一些打字的工作,但以后我可能会想创建一些有用的调试功能。

oewdyzsn

oewdyzsn1#

这很容易实现。你需要做的是创建一个content script。这个脚本可以被注入到任何页面,并创建一些必要的全局函数,你可以在控制台中使用。最具挑战性的部分是如何使这些自定义内容脚本函数成为你实际的window对象的一部分。因为通常你不能从不在内容脚本中的其他javascript代码中访问你在内容脚本中定义的函数或变量。内容脚本运行在所谓的隔离环境中。
内容脚本在一个称为隔离世界的特殊环境中执行。它们可以访问它们所注入的页面的DOM,但不能访问该页面创建的任何JavaScript变量或函数。它会将每个内容脚本视为在其运行的页面上没有其他JavaScript在执行。反过来也是如此:页面上运行的JavaScript无法调用任何函数或访问内容脚本定义的任何变量。
但也有很好的解决办法。
按如下方式定义清单文件:

    • 清单. json**
{
    "name": "Content script",
    "version": "0.1",
    "manifest_version": 2,
    "content_scripts": [{
        "matches": ["http://*/*"],
        "js": ["console.js"]
    }]
}

您的内容脚本:

    • 控制台. js**
function customConsole() {
    window.myNewFunction = function() {
        console.log("Hello I'm available from console.");
    };
}

var script = document.createElement('script'),
    code   = document.createTextNode('(' + customConsole + ')();');
script.appendChild(code);
(document.body || document.head || document.documentElement).appendChild(script);

因此,您将新函数指定为全局函数,以便可以在console中使用它们。
另请看一下post

cwdobuhd

cwdobuhd2#

今天,Chrome Snippets可能是另一种选择,它允许你存储可以多次重用的自定义代码。

相关问题