2010-10-03 30 views
0

我使用下面的代码来打开一个模式框,当一个按钮被点击。在所有浏览器中都能正常工作,但IE7出现错误。语法错误? jQuery的脚本不工作在IE7

这是代码。我做错了什么? title后在端

  <script type="text/javascript"> 
$(document).ready(function(){ 
var dialogOpts = { 
     modal: true, 
     bgiframe: true, 
     autoOpen: false, 
     height: 550, 
     width: 550, 
     draggable: true, 
     resizeable: true, 
     title: "Invite a friend", 
    }; 
$("#invitebox").dialog(dialogOpts); //end dialog 

    $('#invitebutton').click(
     function() { 
     $("#invitebox").load("widgets/invite_a_friend/index.php", [], function(){ 
       $("#invitebox").dialog("open"); 
      } 
     ); 
     return false; 
     } 
    ); 
}); 
</script> 
+0

什么是错误信息? – Sjoerd 2010-10-03 09:18:01

回答

3

卸下,

var dialogOpts = { 
     modal: true, 
     bgiframe: true, 
     autoOpen: false, 
     height: 550, 
     width: 550, 
     draggable: true, 
     resizeable: true, 
     title: "Invite a friend", // <-- REMOVE THIS COMMA 
    }; 

另外,.load()函数接受一个对象,而不是数组作为第二个参数:

$("#invitebox").load("widgets/invite_a_friend/index.php", { }, function() { 
    $("#invitebox").dialog("open"); 
}); 
+1

只是FYI:最后的逗号只在IE中有问题。我的意见是,在这个问题IE浏览器正在做正确的方式。其他人不是。代码错误不应该被容忍。 – 2010-10-03 09:31:05

+1

@罗伯特,我完全不同意你的看法。这在IE中不是问题。 Javascript是程序员应该尊重的ECMA标准。事实上,你可以提供废话给其他浏览器,他们接受它并不意味着他们比IE更好。默默地接受错误甚至比尽早通知你更糟糕。 – 2010-10-03 09:31:57

+0

@Darin:这正是我刚才所说的。我确实说过其他浏览器在这方面是废话,因为他们只是忽略这个错误,这是不对的。我确实为此鼓掌称呼IE。我想你误解了我达林。但尽管我们称赞这个IE功能,它仍然应该得到更好的处理,因为你并没有真正遇到错误。它只是忽略了你的脚本。这也可以改进。 – 2010-10-04 08:45:46

1

这是问题所在,则逗号结尾:

title: "Invite a friend", 
}; 

JSLint可以告诉你你的代码是否正确。