javascript - JS Bookmarklet 在 IE11 中不工作

标签 javascript bookmarklet internet-explorer-11

长期潜伏者,第一次海报。

基础是这样的:

灵感来自 this blog post ,我正在尝试为我们的 QA 团队创建一个小书签以快速填充表单。

小书签在我的机器 (TM) 的 Chrome、IE 10 和 IE 9 兼容模式下完美运行。我已经在 QA 团队的机器上测试了小书签,虽然它在他们的 Chrome 浏览器和 IE 9 上运行良好,但小书签在运行 IE 11 的两台机器上不起作用。

详细信息:

在运行 IE 11 的两台机器中,一台运行 Win 7,另一台运行 Win 8.1。在 Win 7 上运行 IE 11 的机器更新到 IE 版本 11.0.9600.17207IS,也将在 Chrome 中正确运行书签。

我尝试了几个不同的变体,第一个基于上面提到的 CSS-Tricks 博客文章。

<a href="javascript:
    (function(d) {
        var body = d.getElementsByTagName('body').item(0);
        var script = d.createElement('script');
        script.src = 'https://company.siteurl.com/unrelated/DisclosureRegister.js';
        body.appendChild(script);
    }(window.document));
    alert('Bookmarklet js fired!');">Disclosure Register Bookmarklet</a>

第二个,基于 StackOverflow Response , 如下:

<a href="javascript:
    (function(){
        var s=document.createElement('script');
        s.type='text/javascript';    
        s.src='https://company.siteurl.com/unrelated/DisclosureRegister.js';
        document.getElementsByTagName('head')[0].appendChild(s);
    }());">Disclosure Register 2</a>

这两个代码在我的机器上都可以在前面提到的浏览器中运行,都不能在其他机器上的 IE 11 中运行(我没有 IE 11,无法直接在我的机器上测试它)。

我在开发人员工具的控制台中没有收到任何错误消息,并且 DisclosureRegister.js 文件未列在开发人员工具的文件列表中。小书签似乎根本没有触发。

当我右键单击 > 属性时,这些小书签都没有 Web 文档选项卡,但是,我为他们提供的一个简单的 javascript 警报小书签确实有 Web 文档选项卡,并且它在所有浏览器(包括 IE 11)中都能完美运行.

<a href="javascript:alert('That tickles!');">Click me!</a>

我通过在 Codepen 中编写 html 来交付小书签,通过电子邮件将指向 Codepen 的直接链接发送给他们(我没有足够的信誉点来发布链接),并让他们从 Codepen 中拖动链接 输出到他们的浏览器收藏夹栏。

我遇到了一些让我希望这是旧版本 IE 11 的错误,但正在使用的 IE 版本甚至比修复相关错误的版本更新。

以防万一 DisclosureRegister.js 文件中的某些内容导致 IE 11 中止 javascript,我也包含了相应的代码:

(function (win, doc, $, undefined) {

    //Don't run if jQuery isn't loaded
    if (typeof window.jQuery === 'undefined') {
        return;
    }

    alert("Script is being called!");

    }(window, window.document, window.jQuery));

问题:

虽然我当然不排除我的代码有错误(当然,如果错了请纠正我),但 IE 11 在处理 javascript 小书签的方式上有什么特殊之处我需要在代码?

提前感谢您的宝贵时间!

最佳答案

那篇文章是我写的。真的很高兴你们发现它很有用。

似乎有很多人提示小书签在 IE11 中无法正常工作。我要测试的一件事是 IE11 如何处理同源策略。 Check out this link ,看看是否可以暂时禁用同源策略。然后测试。

显然它不会解决问题,但它可以引导您朝着正确的方向前进。

希望对您有所帮助。让我知道。

关于javascript - JS Bookmarklet 在 IE11 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24788349/

相关文章:

javascript - React-native 的 Code Push 破解 Jest 测试

javascript - 如何在 gmail.com 上访问书签中当前选定的文本

javascript - IE 在从控制台调用时支持 forEach(...) 但在从代码调用时不支持

html - Internet Explorer 11 通过元标记禁用 "display intranet sites in compatibility view"不起作用

javascript - onClick 需要两次点击来填充结果,HighCharts

javascript - 如何在 Rspec 功能规范期间创建 Javascript stub 对象?

Javascript 书签导致页面空白

javascript - 在 IE11 中调试 JavaScript

javascript - 在正确的位置使用 toFixed

javascript - 忽略小于或等于 3 的 javascript 数组