链接无效

链接无效

当我点击target=_blank[1] 链接时,IE11 会打开一个新的空白选项卡,而不是预期的选项卡。这在 Chrome[2] 中运行正常,但在 IE8 中失败,现在在 IE 11 中失败。

我重置了浏览器设置(Internet 设置/高级选项卡)并升级到 IE 11 以尝试解决此问题。

更改选项卡设置似乎确实会影响这一点,但没有选项能够获得预期的行为。

[1]示例代码:

<A class=oLinkExternal href="http://orgintranet.org.co.uk/systems/ibd-db/" target=_blank>IBD database</A>

[2] 版本 42.0.2311.135

答案1

由于target="_blank"有效但无效target=_blank,这看起来像是 IE11 中的一个错误,无法正确解析以下划线开头的属性。

我能想到的解决此类错误的方法是:

  1. 使用其他更好的浏览器
  2. 修复互联网上的每个页面,替换target=_blanktarget="_blank"

对于第一个选项,你不需要我的帮助。

第二种选择并不像听起来那么不可能。我将在下面概述一种方法,但你应该考虑到我不使用 IE11,也从未尝试过这种方法。

修改已加载 HTML 页面的软件是油脂猴. IE11 中存在一些改编版本 (质量未知) :

假设其中一个有效,这里有一个可以完成这项工作的用户脚本:

// ==UserScript==
// @name        your-choice
// @namespace       http://avoid.collusions.com
// @description     Resets target="_blank" links hoping to add quotes.
// @include     *
// ==/UserScript==
(function () {
    var external = document.links; 
    for (var k=0; k<external.length; k++)   
        if (external[k].href && external[k].target=="_blank") 
            external[k].target = "_blank";
})();

这可能是错误地假设 Greasemonkey 会在其替换的属性周围添加引号。如果没有发生这种情况,可以修改脚本以强制使用引号。

由于我还没有进行任何测试,如果这种方法不起作用,我提前道歉。

答案2

您可以使用 jQuery 删除 target='_blank' 属性

就像是

$document.ready(function(){
 $("a").attr('target','_blank');
});

或者只是 js

var as = [].slice.apply(document.getElementsByClassName('oLinkExternal'));
for (var a in as){as[a].target="");}

相关内容