wen*_*n32 14 javascript google-chrome
我想用我自己的chrome版本的类似javascript文件覆盖一个javascript文件.
让我解释:
1)让我们说网站' http://example.com '称之为' http://example.com/script/somescript.js '.
2)我想要做的是使用位于' http://localhost/script/somescript.js '的我自己的版本覆盖文件' http://example.com/script/somescript.js '.
3)我需要有效地修改原始Javascript文件中的函数.
谢谢 :-)
小智 29
使用Chrome 65,这已经变得微不足道了.
它是什么? 这是一项新功能,允许我们使用跨会话持久化的本地副本覆盖网站代码/ css.覆盖文件后,它将一直保留,直到您删除覆盖.
如何设置?
Far*_*ide 18
Chrome中有插件和工具用于以下目的:
选择一款更易于使用的产品.
您可以自己创建一个 chrome 扩展程序。如果您使用像yeoman chrome extension这样的工具,它非常简单,只需几分钟。创建一个新目录并运行生成器
yo chrome-extension
Run Code Online (Sandbox Code Playgroud)
输入扩展名和简短说明。选择Page Action您要使用的Content Scripts。您可以忽略其他选项 -如果您有疑问,请遵循这个优秀的指南,但它真的很简单。
? 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?
Run Code Online (Sandbox Code Playgroud)
..等等。现在你有一个这样的目录结构
app
bower_components
images
_locales
scripts.babel
background.js
chromereload.js
contentscript.js
Run Code Online (Sandbox Code Playgroud)
您不能用另一个脚本替换现有加载的远程脚本,因为该脚本已经加载到 DOM 中。但是您可以在 body 的末尾插入一个新脚本,它会覆盖您要替换的函数。函数是变量,如果你向文档中添加一个与现有函数同名的新函数,新函数将代替旧函数被执行,就像你声明了一个与现有变量同名的新变量一样。现在打开并编辑contentscript.js:
yo chrome-extension
Run Code Online (Sandbox Code Playgroud)
代码可能是这样的
? 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?
Run Code Online (Sandbox Code Playgroud)
注意模板文字。我们需要将代码作为字符串插入,但使用反引号使其更具可读性。替换foo()为您要覆盖的函数。
无需部署或捆绑。您可以立即从运行生成器的路径安装扩展
chrome://extensions manifest.json从您的路径中选择contentscript.js.