是否可以加载本地版本的JavaScript文件而不是服务器版本?

是否可以加载本地版本的JavaScript文件而不是服务器版本?,javascript,browser,Javascript,Browser,只是有一个简单的问题要抛出,看看是否有一个解决这个问题的办法 让我们假设我无法访问服务器。 我加载了一个网页,发现他们有一个从子文件夹加载的Javascript文件(比如/scripts/js/some.js) 现在,我想在本地对此文件进行更改,并针对整个站点对其进行测试,而无需将整个站点下载到本地文件夹 有人知道我有什么方法可以覆盖远程js文件的加载,而代之以本地/编辑的副本吗?在支持文件阅读器(如Chrome)的浏览器中,是的,结合“eval”来执行任意js。在HTML中添加一个按钮供用户按

只是有一个简单的问题要抛出,看看是否有一个解决这个问题的办法

让我们假设我无法访问服务器。 我加载了一个网页,发现他们有一个从子文件夹加载的Javascript文件(比如/scripts/js/some.js)

现在,我想在本地对此文件进行更改,并针对整个站点对其进行测试,而无需将整个站点下载到本地文件夹


有人知道我有什么方法可以覆盖远程js文件的加载,而代之以本地/编辑的副本吗?

在支持文件阅读器(如Chrome)的浏览器中,是的,结合“eval”来执行任意js。在HTML中添加一个按钮供用户按下:

<form>
    <input type="file" name="file"
        onchange="loadJS(event.target.files);">
</form>

尝试使用或adblock阻止服务器端脚本加载。然后使用加载您自己的脚本

我真的找到了解决办法。发布任何来这里寻找它的人的详细信息

Privoxy(www.Privoxy.org/)[Free]在很大程度上通过重定向实现了这一点。尽管Firefox可能会阻止重定向,这取决于你把它放在哪里。这意味着您很可能无法在本地保存文件并通过file://etc/

(我希望我有办法告诉您如何在您访问受限的网页上静态处理JavaScript…但我没有找到它。如果有答案,我会接受它。

当然,您必须设置Privoxy,并将其用作本地代理服务器。如果您只是暂时使用它,那么它非常简单:只要将浏览器指向端口8118上的proxy 127.0.0.1并运行它即可

您必须添加重定向“默认操作”(选项>编辑默认操作)以重定向浏览器以使用新副本:

{ +redirect{/newLocation/some.js} }
 /scripts/js/some.js

虽然使用代理的解决方案更持久,但我发现使用Fiddler几乎不需要配置即可完成:


如果您想使用本地文件而不是远程文件(在任何web浏览器中),我强烈推荐Charles web Proxy

在Charles中,转到“工具”菜单并选择“地图本地”。通过输入要从磁盘加载的web文件的地址来添加新映射


这种技术适用于所有类型的文件(JavaScript、CSS、SWF)。当然,您可以选择暂时禁用此功能,并且它仅在Charles运行时起作用。非常方便。

我想你误解了。我们假装我无法访问服务器/文件,无法将脚本添加到页面以加载本地文件。可以这样想:你想从(比如)谷歌复制一个javascript文件,修改它并使用本地副本而不是远程副本。不仅仅是使用Firebug或Chrome开发者工具来修改脚本?是的,在Firebug/Chrome Dev中编辑脚本会在你访问另一个页面时重新加载(如果我没弄错的话)您所做的所有更改都将丢失。(现在我正在深入研究它,我甚至无法在Firebug中本地编辑远程JS文件……不确定Chrome。)
{ +redirect{/newLocation/some.js} }
 /scripts/js/some.js