Javascript 如何让Greasemonkey重定向到本地资源?
最近我经常关闭的一个网站。但是,我经常将所有资源备份到本地计算机。我试图通过我的书签之类的东西来访问它们,而不必手动调整每个书签。因此,我为firefox编写了一个Greasemonkey脚本,它应该将每个文件重定向到本地驱动器上的资源。这是我的剧本:Javascript 如何让Greasemonkey重定向到本地资源?,javascript,greasemonkey,Javascript,Greasemonkey,最近我经常关闭的一个网站。但是,我经常将所有资源备份到本地计算机。我试图通过我的书签之类的东西来访问它们,而不必手动调整每个书签。因此,我为firefox编写了一个Greasemonkey脚本,它应该将每个文件重定向到本地驱动器上的资源。这是我的剧本: // ==UserScript== // @name Resource Redirect // @namespace Resource Redirect // @include http://www.domain.com
// ==UserScript==
// @name Resource Redirect
// @namespace Resource Redirect
// @include http://www.domain.com/*
// @version 1
// @grant metadata
// @run-at document-start
// ==/UserScript==
var URL = window.location.href;
var newURL = URL.replace('http://www.domain.com/sites/default/files/','file:///I:/folder/files/');
// alert(newURL);
window.location.href = newURL;
警报正在将正确的文件路径和名称踢出本地资源。如果我将该文件路径从警报(我仅用于调试目的)复制并粘贴到地址栏,它将调出正确的文件。因此,替换和所有代码直到最后一行都在工作。但它不是重定向。它只是停留在现有的URL上,并显示404错误。我做错了什么?谢谢。出于安全考虑,浏览器限制从脚本加载本地文件 如果您的机器上有python,最简单的方法就是使用python简单http服务器提供这些文件
cd I:/folder/files/
# for python 2.x :
python -m SimpleHTTPServer 80
# for python 3.x :
python -m http.server 80
然后您可以将脚本更改为
var newURL = URL.replace('http://www.domain.com/sites/default/files/','http://localhost:80/');
您是否在控制台中收到此错误<代码>错误:访问'file:///I:/folder/files/...'从脚本拒绝否。我在控制台中没有看到该错误。请尝试在控制台中设置“http://”url的“file://”url-这就是错误所在,这就是它无法工作的原因-如下所示,这是一个安全策略,我没有安装python,但你只是让我思考一下。我在windows计算机上,所以是否可以在后端使用hosts文件来映射类似于此的内容,而不是使用我编写的脚本?更改hosts文件没有帮助。你需要一台服务器来处理这些文件。我听了你的建议。我安装了EasyHP并创建了指向资源文件夹的本地主机别名。对脚本进行了修改,使其指向这一点,现在效果很好。谢谢