想用dlgHelper来制作一个可以获取系统颜色的按钮,在网上找了下,相关代码不少。但使用时,总是提示错误:“JS1135: 尚未声明变量“dlgHelper"”。以下是完整的源程序。<%@ Page AutoEventWireup="false" Inherits="test.WebForm1" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>WebForm1</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="Form1" method="post" runat="server">
<FONT face="宋体"></FONT>
<OBJECT id="dlgHelper" height="0px" width="0px" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" VIEWASTEXT>
</OBJECT>
<script language="javascript" runat="server">   
var   sInitColor   =   null;   
function callColorDlg( ){   
if   (sInitColor   ==   null)     
var   sColor   =   dlgHelper.ChooseColorDlg();   
else   
var   sColor   =   dlgHelper.ChooseColorDlg(sInitColor);   
sColor   =   sColor.toString(16);   
if   (sColor.length   <   6)   {   
var   sTempString   =   "000000".substring(0,6-sColor.length);   
sColor   =   sTempString.concat(sColor);   
}   
sColor   =   "#"   +   sColor   
sColor.value=sColor   
alert(sColor)   
}   
</script>
<asp:Button Runat="server" ID="ofntColor" Text="颜色" OnClick="callColorDlg()"></asp:Button>
</form>
</body>
</HTML>

解决方案 »

  1.   


    想用dlgHelper来制作一个可以获取系统颜色的按钮,在网上找了下,相关代码不少。但使用时,总是提示错误:“JS1135: 尚未声明变量“dlgHelper"”。以下是完整的源程序。<%@ Page AutoEventWireup="false" Inherits="test.WebForm1" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm1</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <FONT face="宋体"></FONT>
    <OBJECT id="dlgHelper" height="0px" width="0px" classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b" VIEWASTEXT>
    </OBJECT>
    <script language="javascript" runat="server">   
    var   sInitColor   =   null;   
    function callColorDlg( ){   
    if   (sInitColor   ==   null)     
    var   sColor   =   dlgHelper.ChooseColorDlg();   
    else   
    var   sColor   =   dlgHelper.ChooseColorDlg(sInitColor);   
    sColor   =   sColor.toString(16);   
    if   (sColor.length   <   6)   {   
    var   sTempString   =   "000000".substring(0,6-sColor.length);   
    sColor   =   sTempString.concat(sColor);   
    }   
    sColor   =   "#"   +   sColor   
    sColor.value=sColor   
    alert(sColor)   
    }   
    </script>
    <asp:Button Runat="server" ID="ofntColor" Text="颜色" OnClick="callColorDlg()"></asp:Button>
    </form>
    </body>
    </HTML>
      

  2.   


    <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   > 
    <HTML> 
    <HEAD> 
    <title> WebForm1 </title> 
    <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1"> 
    <meta   name="CODE_LANGUAGE"   Content="C#"> 
    <meta   name="vs_defaultClientScript"   content="JavaScript"> 
    <meta   name="vs_targetSchema"   content="http://schemas.microsoft.com/intellisense/ie5"> 
    </HEAD> 
    <body   MS_POSITIONING="GridLayout"> 
    <form   id="Form1"   method="post"   runat="server"> 
    <FONT   face="宋体"> </FONT> 
    <OBJECT   id="dlgHelper"   height="0px"   width="0px"   classid="clsid:3050f819-98b5-11cf-bb82-00aa00bdce0b"   VIEWASTEXT> 
    </OBJECT> 
    <script   language="javascript" >       
    var       sInitColor       =       null;       
    function   callColorDlg(   ){       
    if       (sInitColor       ==       null)           
    var       sColor       =       document.all['dlgHelper'].ChooseColorDlg();       
    else       
    var       sColor       =       document.all['dlgHelper'].ChooseColorDlg(sInitColor);       
    sColor       =       sColor.toString(16);       
    if       (sColor.length       <       6)       {       
    var       sTempString       =       "000000".substring(0,6-sColor.length);       
    sColor       =       sTempString.concat(sColor);       
    }       
    sColor       =       "#"       +       sColor       
    sColor.value=sColor       
    alert(sColor)       
    }       
    </script> 
    <input type="button" ID="ofntColor"   Text="颜色"   OnClick="callColorDlg()">
    </form> 
    </body> 
    </HTML>
      

  3.   

    语法问题是没有了,不过还是无法按照预期弹出取色器。另外,为什么把<script>里的runat=server去掉后,就可以了呢?
      

  4.   

    runat=server是什么意思?自己查查吧。
      

  5.   


    function   callColorDlg(   ){       
    if       (sInitColor       ==       null)           
    var       sColor       =       document.all("dlgHelper").ChooseColorDlg();       
    else       
    var       sColor       =       document.all("dlgHelper").ChooseColorDlg(sInitColor);     
    这样写就不会出错了。 。  
      

  6.   

    有runat = server 就必须document.all("dlgHelper").  这样找。。