在chrome中重写Javascript文件
我想用chrome中类似javascript文件的我自己的版本覆盖javascript文件 让我解释一下:在chrome中重写Javascript文件,javascript,google-chrome,Javascript,Google Chrome,我想用chrome中类似javascript文件的我自己的版本覆盖javascript文件 让我解释一下: 比如说一个站点的http://example.com“电话”http://example.com/script/somescript.js" 我要做的是覆盖文件的http://example.com/script/somescript.js'我自己的版本位于'http://localhost/script/somescript.js" 我需要有效地修改原始Javascript文件中的函
Chrome中有用于这些目的的插件和工具:
选择一个更容易使用的工具。Chrome中有用于这些目的的插件和工具:
选择一个更易于使用的脚本。您可以通过添加(或在控制台中执行)此脚本将文件加载到页面中
window.onload = function () {
var script = document.createElement('script');
script.src = '//localhost/your/script';
script.onload = function() {
console.log('your script have been loaded');
}
document.body.appendChild(script);
}
如果要覆盖的文件包含全局函数/变量,则将使用文件中的新版本进行覆盖,或者如果要覆盖的元素具有名称空间,则只需遵循路径(例如
My.namespace.method=myNewMethod
),您可以通过添加(或在控制台中执行)将文件加载到页面中这个脚本
window.onload = function () {
var script = document.createElement('script');
script.src = '//localhost/your/script';
script.onload = function() {
console.log('your script have been loaded');
}
document.body.appendChild(script);
}
如果要覆盖的文件包含全局函数/变量,则将使用文件中的新版本进行覆盖,或者如果要覆盖的元素具有名称空间,则只需遵循路径(例如
My.namespace.method=myNewMethod
),您可以自己创建一个chrome扩展。如果您使用像这样的工具,它非常简单,只需几分钟。创建一个新目录并运行生成器
yo chrome-extension
输入扩展名和简短说明。选择页面操作
和您想要使用的内容脚本
。你可以忽略其他的选择-跟随,但这确实是直截了当的
? What would you like to call this extension? insert-script
? How would you like to describe this extension? replace a function with another function
? Would you like to use UI Action? Page Action
? Would you like more UI Features? Content Scripts
? Would you like to set permissions?
……等等。现在有了这样的目录结构
app
bower_components
images
_locales
scripts.babel
background.js
chromereload.js
contentscript.js
无法用另一个脚本替换已加载的现有远程脚本,因为该脚本已加载到DOM中。但您可以在正文末尾插入一个新脚本,该脚本将覆盖要替换的函数。函数是变量,如果向文档中添加与现有函数同名的新函数,将执行新函数而不是旧函数,就像声明与现有变量同名的新变量一样。现在打开并编辑contentscript.js
:
“严格使用”;
log(“\'Allo\'Allo!内容脚本”);
代码可能是这样的
“严格使用”;
变量代码=`
函数foo(){
警报(“foo”);
}
`;
var script=document.createElement('script');
script.textContent=代码;
document.body.appendChild(脚本);
请注意。我们需要将代码作为字符串插入,但使用反勾号更具可读性。将foo()
替换为要重写的函数
不需要部署或绑定。您可以立即从运行生成器的路径安装扩展
chrome://extensions
manifest.json
contentscript.js
进行更改时,只需点击扩展页面上的重新加载即可李>
您可以自己创建一个chrome扩展。如果您使用像这样的工具,它非常简单,只需几分钟。创建一个新目录并运行生成器
yo chrome-extension
输入扩展名和简短说明。选择页面操作
和您想要使用的内容脚本
。你可以忽略其他的选择-跟随,但这确实是直截了当的
? What would you like to call this extension? insert-script
? How would you like to describe this extension? replace a function with another function
? Would you like to use UI Action? Page Action
? Would you like more UI Features? Content Scripts
? Would you like to set permissions?
……等等。现在有了这样的目录结构
app
bower_components
images
_locales
scripts.babel
background.js
chromereload.js
contentscript.js
无法用另一个脚本替换已加载的现有远程脚本,因为该脚本已加载到DOM中。但您可以在正文末尾插入一个新脚本,该脚本将覆盖要替换的函数。函数是变量,如果向文档中添加与现有函数同名的新函数,将执行新函数而不是旧函数,就像声明与现有变量同名的新变量一样。现在打开并编辑contentscript.js
:
“严格使用”;
log(“\'Allo\'Allo!内容脚本”);
代码可能是这样的
“严格使用”;
变量代码=`
函数foo(){
警报(“foo”);
}
`;
var script=document.createElement('script');
script.textContent=代码;
document.body.appendChild(脚本);
请注意。我们需要将代码作为字符串插入,但使用反勾号更具可读性。将foo()
替换为要重写的函数
不需要部署或绑定。您可以立即从运行生成器的路径安装扩展
chrome://extensions
manifest.json
contentscript.js
进行更改时,只需点击扩展页面上的重新加载即可李>
您可以通过一个简单的chrome扩展来轻松实现这一点,如。以下是步骤: