2013-02-18 36 views
0

这里需要一点帮助。IE 9 - 对象不支持属性或方法'格式'

我决定在一个.js文件中传输我的一些javascript函数。这些功能在其他浏览器中正常工作除了IE浏览器。

注:下面 代码是存储在单独的js文件 “my_js.js

var dialogConfirmed = false; 

function DialogConfirmation(obj, title, dialogText) { 
    if (!dialogConfirmed) { 
     $('body').append("<div id='dialog' title='" + title + "'>'" + dialogText + "'</div>");    
     $('#dialog').dialog 
     ({ 
      height: 150, 
      modal: true, 
      resizable: false, 
      draggable: false, 
      close: function(event, ui) { $('body').find('#dialog').remove(); }, 
      buttons: 
      { 
       'Yes': function() { 
        $(this).dialog('close'); 
        dialogConfirmed = true; 
        if (obj) obj.click(); 
       }, 
       'No': function() { 
        $(this).dialog('close'); 
       } 
      } 
     }); 
    } 

    return dialogConfirmed; 
} 

使用

<asp:Button ID="btnAlert" runat="server" Text="Alert" OnClientClick="return DialogConfirmation(this, 'Popup Header', 'Popup Body Message');" onclick="btnAlert_Click" /> 

当点击它抛出的按钮和错误指向方法“格式

**Microsoft JScript runtime error: Object doesn't support property or method 'Format'** 

但是检查我的代码不使用'格式'。有关错误的任何想法?我在我的工作站上使用EI 9。

+2

它究竟在哪里抛出错误?你有没有设置一个断点并通过? – 2013-02-18 08:26:16

+0

你有两个'onclicks'。 – Jai 2013-02-18 08:29:53

+0

此处发生错误。 ** $('body')。append(“

'" + dialogText + "'
”); ** – klaydze 2013-02-18 08:59:05

回答

0

我写了相同的代码和itz工作正常。请尝试一次。谢谢。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication8.WebForm1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script> 
    <script src="Scripts/jquery-ui-1.10.1.custom.js" type="text/javascript"></script> 
    <script type="text/javascript"> 

     var dialogConfirmed = false; 

     function DialogConfirmation(obj, title, dialogText) { 
      if (!dialogConfirmed) { 
       $('body').append("<div id='dialog' title='" + title + "'>'" + dialogText + "'</div>"); 
       $('#dialog').dialog 
     ({ 
      height: 150, 
      modal: true, 
      resizable: false, 
      draggable: false, 
      close: function (event, ui) { $('body').find('#dialog').remove(); }, 
      buttons: 
      { 
       'Yes': function() { 
        $(this).dialog('close'); 
        dialogConfirmed = true; 
        if (obj) obj.click(); 
       }, 
       'No': function() { 
        $(this).dialog('close'); 
       } 
      } 
     }); 
      } 
      return dialogConfirmed; 
     } 

    </script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btnAlert" runat="server" Text="Alert" OnClientClick="javascript:return DialogConfirmation(this, 'Popup Header', 'Popup Body Message');" /> 
    </div> 
    </form> 
</body> 
</html> 
+0

是的,当你把它放在一个单独的页面中时就像你所做的一样,但我的目标是将我的一些函数放在一个.js文件中。尝试创建一个.js文件,然后复制粘贴我的代码然后尝试使用它。它会在** $('body')中产生错误。append(“

'" + dialogText + "'
”); $('#dialog')。dialog ** – klaydze 2013-02-18 13:02:20

0

我已经动了你的Javascript代码单独的文件和一切工作正常在IE 9或许你已经错过了在代码中jQuery的ui.js文件的添加。请参阅下面的工作代码。

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebApplication8.WebForm1" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script src="Scripts/jquery-1.9.1.js" type="text/javascript"></script> 
    <script src="Scripts/jquery-ui-1.10.1.custom.js" type="text/javascript"></script> 
    <script src="Scripts/my_js.js" type="text/javascript"></script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:Button ID="btnAlert" runat="server" Text="Alert" OnClientClick="javascript:return DialogConfirmation(this, 'Popup Header', 'Popup Body Message');" /> 
    </div> 
    </form> 
</body> 
</html> 
+0

嗨skumar, 我有所有需要的js和css来正确运行jquery。其实我已经在一个小时之前通过清除浏览器(IE)的缓存来解决这个问题。 :) – klaydze 2013-02-20 00:56:51

相关问题