可以在IE11中运行userscript

Possible to run userscript in IE11

本文关键字:运行 userscript IE11      更新时间:2023-09-26

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

是否有任何方法在IE11中使用这个脚本?或者IE11有什么插件可以像Tampermonkey/Greasemonkey那样做吗?

TrixIE WPF4.5声称在IE11上模拟Greasemonkey

不幸的是,原来的TrixieIE7Pro在ie8前后停止工作。

我使用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);
  • 创建书签并将URL修改为:
  • javascript:(function(){eval(localStorage.getItem('Hello world'));})()
    

    优势:

      不需要额外的插件。
    • 几乎没有脚本长度限制。

    缺点:

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

    一个简单的Google搜索(我搜索的是"greasemonkey for IE")可以得到其他浏览器的各种替代方案:

    http://en.wikipedia.org/wiki/Greasemonkey Equivalents_for_other_browsers

    对于Internet Explorer, IE7Pro,[19] Sleipnir,[20]和iMacros都提供了类似的功能。

    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);
        }
    }
    

    doc:修改请求或响应

    只需打开Developer tools(按F12)并将脚本粘贴到Console,然后运行它(Ctrl + Enter)。