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

标签 javascript greasemonkey

我经常访问的一个网站最近被关闭了。但是,我将经常使用的所有资源备份到本地计算机上。我试图通过我的书签等访问它们,而无需手动调整每个书签。因此,我为 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/');

关于javascript - 如何让 Greasemonkey 重定向到本地资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31772932/

相关文章:

javascript - 包含动画选项时 Jquery 回调不起作用(砌体插件)

javascript - 如何直接从浏览器中中止ajax请求?

javascript - 如何让 Greasemonkey 单击延迟后才出现的按钮?

javascript - 使用 GreaseMonkey 停止加载缓慢的脚本

javascript:从 GM 脚本调用嵌入式函数

javascript - Greasemonkey/Javascript 预处理器和构建系统

javascript - 传单L.control.attribution

javascript - Ajax/Javascript - 单击 1 个链接后删除链接

javascript - Ember : transition to route passing the ID instead of obj

javascript - 将从网站加载的 Javascript 文件的执行替换为我自己的