我正在使用以下JQuery代码来确保外部链接在我的网站上的新标签页中打开:
[
{
"year": "2018",
"Mar": 10260,
"overall": 10260
},
{
"year": "2019",
"Jan": 28518,
"Feb": 28518,
"Mar": 54739,
"Apr": 185185,
"May": 14259,
"Jun": 28518,
"July": 14160,
"Aug": 14259,
"Sep": 14160,
"Oct": 14259
"Nov": 14160
"Dec": 14160
"overall": 424895
}
];
这在Internet Explorer以外的所有浏览器中均能完美运行。奇怪的是,此脚本在我网站的每个页面上运行,但错误仅出现在联系页面(在IE11中)。加载联系人页面时,控制台中出现 $('a:not(.magnific-video)').each(function () {
var extLink = new RegExp('/' + window.location.host + '/');
if (!extLink.test(this.href)) { // IE11 throws the security problem here
$(this).click(function (event) {
event.preventDefault();
event.stopPropagation();
window.open(this.href, '_blank');
});
}
});
错误,该错误指向我在上面的代码中注释过的行(带有SCRIPT14: A security problem occured.
的行),并且没有其他JavaScript页面有效。我网站上的所有页面都有外部链接(在页脚和其他位置),因此其他页面和联系页面之间的唯一区别是它通过其API加载google maps以在页面上显示地图(也许有一些事情要做) ,因为它是与其他页面相比唯一明显的区别。
我在寻找什么
修复了Internet Explorer中的安全问题,以便联系页面上的所有其他脚本都可以像在其他浏览器中一样工作。
编辑/更新
我用在GitHub上找到的以下脚本替换了上面的脚本。它似乎在做同样的事情,并且我再也没有在IE11上遇到安全问题……不是上述脚本的解决方案无法正常工作,因此为什么我不把它作为答案。
.test()