我想知道是否有办法做这样的事情: 如果我在特定的网站上,我希望从我的计算机直接加载一些javascript文件(f.e.file:/// c:/test.js),而不是从服务器。
为此我想是否有可能进行扩展,这可能会改变浏览器在显示之前得到的响应中的HTML代码。所以整个过程应该是这样的:
无论如何它甚至不必是Chrome扩展程序。它应该只是完成上述工作。它可以阻止原始文件并提供另一个(DNS /代理?)或过滤我的计算机中的整个HTTP流量,并将特定代码替换为另一个匹配的响应。
答案 0 :(得分:4)
您可以使用WebRequest API来实现这一目标。例如,您可以添加onBeforeRequest
侦听器并重定向某些请求:
chrome.webRequest.onBeforeRequest.addListener(function(details)
{
var responseData = "<div>Some text</div>"
return {redirectUrl: "data:text/html," + encodeURIComponent(responseData)};
}, {urls: ["https://www.google.com/"]}, ["blocking"]);
这将显示<div>
元素,文字为“some text”而不是Google主页。请注意,您只能重定向到允许Web服务器重定向到的URL。这意味着无法重定向到file:///
网址,并且您只能重定向到您的扩展程序中的文件web accessible。 data:
和http:
网址可以正常使用。
答案 1 :(得分:1)
在Windows中,您可以使用Proxomitron(proxomitron.info),它是一个本地代理,可以拦截正在加载到浏览器中的任何页面或文件,并使用正则表达式(无DOM解析)更改它,无论您想要什么,在它之前由浏览器呈现。