Chrome插件 可以修改JS文件么?

比如一个页面的源代码是

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>
    <div class="container">xxx</div>
    <script src="http://abc.file.com.js"></script>
</body>

</html>

http://abc.file.com.js 代码是

function logName(name){
  console.log(name)
}

可以使用Chrome插件将 http://abc.file.com.js 的代码改成

function logName(name){
  console.log(name)
}
function logAge(age){
  console.log(age)
}

Chrome 插件可以 拦截 url 替换成自己的url 但是可以 修改js 里面的文本么?

有什么API 可用的么?

阅读 7.8k
1 个回答

可以,有一个叫 ReRes 的插件就是干这个的。

和拦截并替换 HTML 原理是一样的,都是通过 HTTP 请求获得的纯文本,劫持这个过程就可以。

关键代码:

chrome.webRequest.onBeforeRequest.addListener(
  function(details) {
    return { redirectUrl: "my.js" }; // 替换后的JS路径;如果是资源文件,需要 chrome.extension.getURL()
  },
  {
    urls: ["*//abc.com/sample.js"],  // 被拦截的URL,可以多个
    types: ["script"]       // 被拦截的文件类型
  },
  ["blocking"] // 拦截方式
);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题