在IE11中运行用户脚本是否可行?

14

我有一份自定义用户脚本,使用Tampermonkey/Greasemonkey在Chrome和Firefox中运行。

是否有办法在IE11中使用此脚本?或者是否有类似于Tampermonkey/Greasemonkey的IE11插件?

5个回答

11

2
你的SourceForge链接指向了一个名字类似但不同的项目,该项目可以在IE11上运行(而原始的TrixIE则不能)。 - user11153

2
我使用localStorage来实现,该功能被IE8或更高版本支持。
步骤: 1. 当前窗口在您想要脚本运行的域中时,在IE的开发者工具中运行以下代码:
var scriptName = 'Hello world';
function scriptBody(){
//---userscript starts--->

document.body.innerHTML = '<h1>Hello world!</h1>';

//---userscript ends--->
}
var script = scriptBody.toString()
  .split('//---userscript starts--->')[1]
  .split('//---userscript ends--->')[0];
localStorage.setItem(scriptName, script);
  1. 创建一个书签并将URL修改为:
javascript:(function(){eval(localStorage.getItem('Hello world'));})()

优点:

  • 无需额外插件。
  • 几乎没有脚本文本长度限制。

缺点:

  • 需要用户点击书签才能运行脚本。
  • 如果用户清除浏览器缓存,需要重新安装。

这是一个非常好的解决方案。我很高兴能够第一个给予应得的赞扬。 - mkey

1

10
自 IE8 以来,这些信息已经过时了。另外,Sleipnir 是一款浏览器,而不是 IE 的解决方案,iMacros 可以使用,但不兼容 Tampermonkey/Greasemonkey(尽管 iMacros 功能更强大)。 - Brock Adams

1

Fiddler支持修改http请求的响应。
我们可以利用这个功能在任何浏览器中加载用户脚本,包括IE8。

以下是一个示例:

static function OnBeforeResponse(oSession: Session) {
    if (m_Hide304s && oSession.responseCode == 304) {
        oSession["ui-hide"] = "true";
    }
    // match url
    if (oSession.fullUrl == "http://apply.ccopyright.com.cn/goadatadic/getR11List.do") {
        oSession.utilDecodeResponse();
        var script = System.IO.File.ReadAllText("C:\\GitHub\\@selpic\\P660_printer\\Printer\\scripts\\form-save-load.js")
        oSession.utilReplaceOnceInResponse("</body>", "<script>"+script+"</script></body>", true);
    }
}

文档:修改请求或响应


-6

只需打开开发者工具(按F12键),将您的脚本粘贴到控制台中,然后运行它(Ctrl + Enter)。


3
通常情况下,这不是用户脚本的常规用途。 - Anonymous

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接