IE8有时会阻止链接产生,如果它们设置了target = _blank。
此问题似乎仅限于IE的损坏安装,例如并排安装多个版本时。
一旦我找到答案,我就编辑了这个问题,并希望这会为别人节省一些时间。答案在所列第一个答案的评论中。
答案 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。