javascript – JS Bookmarklet在IE11中不起作用
作者:互联网
很长一段时间潜伏,第一次海报.
基础是这样的:
受到this blog post的启发,我正在尝试为我们的QA团队创建一个书签,以快速填充表单.
书签在Chrome,IE 10和IE 9兼容模式下的我的机器(TM)上完美运行.我已经在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警报bookmarklet确实有Web Documents选项卡,它在所有浏览器(包括IE 11)中都能很好地工作.
<a href="javascript:alert('That tickles!');">Click me!</a>
我通过在Codepen中编写html来发送bookmarklet,通过电子邮件向他们发送指向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 bookmarklet的方式是否有什么特别之处我需要在代码中考虑?
在此先感谢您的时间!
解决方法:
我写了那篇文章.真的很高兴你们发现它很有用.
似乎有很多人抱怨在IE11中bookmarklet无法正常工作.我测试的一件事是IE11如何处理相同的原始策略. Check out this link,看看你是否可以暂时禁用相同的原始政策.然后测试.
显然它不会解决问题,但它可以引导你朝着正确的方向前进.
希望有点帮助.让我知道.
标签:javascript,internet-explorer-11,bookmarklet 来源: https://codeday.me/bug/20190703/1363890.html