【发布时间】:2014-09-07 10:16:28
【问题描述】:
潜伏已久,第一次发帖。
基本情况如下:
受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 书签的方式上是否有什么特殊之处,我需要考虑代码?
提前感谢您的宝贵时间!
【问题讨论】:
标签: javascript bookmarklet internet-explorer-11