针对RegEx测试外部链接时的IE11安全问题

时间:2019-04-12 10:45:18

标签: javascript jquery regex internet-explorer internet-explorer-11

我正在使用以下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()

0 个答案:

没有答案