target = _blank在IE8中不起作用,并排运行IE(我通过VirtualBox运行IE包)

时间:2009-07-01 01:06:39

标签: internet-explorer-8

IE8有时会阻止链接产生,如果它们设置了target = _blank。

此问题似乎仅限于IE的损坏安装,例如并排安装多个版本时。

一旦我找到答案,我就编辑了这个问题,并希望这会为别人节省一些时间。答案在所列第一个答案的评论中。

5 个答案:

答案 0 :(得分:3)

这取决于您使用的独立IE8。我发现使用“Final Builds Site - Internet Explorer Collection”(http://finalbuilds.edskes.net/iecollection.htm)版本1.6.0.3时会出现问题。开发人员现在修复了Ver的这个错误。 1.6.0.4,与target =“_ blank”的链接现在按预期工作。

答案 1 :(得分:0)

我知道这已经回答了,但我只是想讲述jQuery的实时绑定功能:

$("a.myclass").live("click",function() {
    $(this).attr("target","_blank");
});

此示例将'target =“_ blank”'属性设置为具有类“myclass”的任何链接,甚至是使用Javascript创建的链接。

答案 2 :(得分:-1)

如果您使用target='blank'怎么办?我知道它不一样,但你会在新的实例中打开弹出窗口,你的网站可以验证XHTML严格模式:)

答案 3 :(得分:-1)

是的,XHTML严格模式不接受target =“_ blank”。

如果你不想在任何地方继续使用window.open,你可以使用rel =“external”和一些额外的Javascript,如下所示,使用JQuery:

$(document).ready(function() {
    $("a[rel='external']").attr("target","_blank");
});

编辑:设置所有生成的链接:

 $("a[rel='external']").ready(function() { 
    $("a[rel='external']").attr("target","_blank");
 });

或者,如果没有jQuery,您可以使用脚本found here

function externalLinks() { 
 if (!document.getElementsByTagName) return; 
 var anchors = document.getElementsByTagName("a"); 
 for (var i=0; i<anchors.length; i++) { 
   var anchor = anchors[i]; 
   if (anchor.getAttribute("href") && 
       anchor.getAttribute("rel") == "external") 
     anchor.target = "_blank"; 
 } 
} 
window.onload = externalLinks;

答案 4 :(得分:-2)

这是因为在XHTML严格模式下,target =“_ blank”无效。参见:

http://www.8164.org/xhtml-strict/

以下情况应适用于所有情况。

<script>window.open("http://www.80vul.com/test/ie8-1.htm");</script>

我认为从IE8 Beta 1开始,默认模式现在是STRICT而不是TRANSITIONAL。