Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何让Greasemonkey重定向到本地资源?_Javascript_Greasemonkey - Fatal编程技术网

Javascript 如何让Greasemonkey重定向到本地资源?

Javascript 如何让Greasemonkey重定向到本地资源?,javascript,greasemonkey,Javascript,Greasemonkey,最近我经常关闭的一个网站。但是,我经常将所有资源备份到本地计算机。我试图通过我的书签之类的东西来访问它们,而不必手动调整每个书签。因此,我为firefox编写了一个Greasemonkey脚本,它应该将每个文件重定向到本地驱动器上的资源。这是我的剧本: // ==UserScript== // @name Resource Redirect // @namespace Resource Redirect // @include http://www.domain.com

最近我经常关闭的一个网站。但是,我经常将所有资源备份到本地计算机。我试图通过我的书签之类的东西来访问它们,而不必手动调整每个书签。因此,我为firefox编写了一个Greasemonkey脚本,它应该将每个文件重定向到本地驱动器上的资源。这是我的剧本:

// ==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并创建了指向资源文件夹的本地主机别名。对脚本进行了修改,使其指向这一点,现在效果很好。谢谢