2011-09-29 66 views
0

我有这样的代码:为什么这个弹出窗口在IE上失败?

<a id="bookingLink" href="javascript.void(0);">Link</a> 

$('#bookingLink').click(function(e) { 
    e.preventDefault(); 

    window.open("http://www.google.com", "Booking Daniela", "width=950,height=680"); 
}); 

和失败(没有弹出窗口显示;同时,在底部的链接是/javascript.void(0);)

为什么?我该如何解决它?

P.S.弹出窗口是在:)

+2

我想尝试删除'href'属性。或者,至少,'javascript'之后不应该有点;改用冒号。 – duri

+0

尝试(删除整个和改变它与一个div),但弹出仍然未知... – markzzz

+0

可能重复的[弹出窗口不能在IE7上打开](http://stackoverflow.com/questions/1100320/popup-window -not-opening-on-ie7) – JJJ

回答

1

微软不支持“name”属性浏览器中启用,因此,如果您删除“预订丹妮拉”,它会工作

window.open('http://www.google.com', '', 'width=950,height=680'); 

检查以下MS文档页面,http://msdn.microsoft.com/en-us/library/ms536651%28v=vs.85%29.aspx

SNAME

“可选字符串,指定窗口的名称,这个名称被用作一种形式或锚定元件上的目标属性的值。”

+1

它确实支持name属性,但它对它非常严格:不允许有空格。 “ – JJJ

+0

”此名称用作表单或锚点元素上TARGET属性的值“ – Arief

+0

我无法想象单一方式如何将该句子解释为”此参数必须留空“。 – JJJ

3

name属性必须没有空格。尝试 “BookingDaniela”

1

您写道:

<a id="bookingLink" href="javascript.void(0);">Link</a> 
$('#bookingLink').click(function(e) { 
e.preventDefault(); 
window.open("http://www.google.com", "Booking Daniela", "width=950,height=680"); 
}); 

让我们改写这个工作:

<a id="bookinglink">Link</a> 

$('#bookinglink').click(function(e){ 
    e.preventDefault(); 
    window.open("http://www.google.com","Booking Daniela", "width="950,height=680"); 
}); 

如果你想传递的数据(例如,如果您有多个#bookinglink元素),你可以这样做:

<a id="bookinglink" pagename="link1">Link</a> 
<a id="bookinglink" pagename="link2">Link</a> 
<a id="bookinglink" pagename="link3">Link</a> 

$('#bookinglink').click(function(e){ 
    e.preventDefault(); 
    var opage = "http://www.google.com"; 
    var pname = $(this).attr('pagename'); 
    window.open(opage,pname,"width=950,height=680"); 
});