我的代码是这样的: var s="<uc1:cpzs ID="Cpzs1" runat="server" />";
s = s.Repalce("\r\n",""); 
XXXX.innerHTML =s; 页面执行后的源码里是这样的:var s="<table>
<tr>
<td style="width: 3px">
adsdfsadfasdf
</td>
</tr>
</table>
 
                              ";
s = s.Repalce("\r\n",""); 
XXXX.innerHTML =s; 然后就报脚本错误:未结束的字符串常量.我试了下要是直接在里面写:
var s=" <table> <tr> <td style=\"width: 3px\">    adsdfsadfasdf </td>    </tr>    </table>                  ";
这样就行.
急死了.求下解决的方法.

解决方案 »

  1.   

    var s='<uc1:cpzs ID="Cpzs1" runat="server" />';
    s = s.Repalce("\r\n",""); 
    XXXX.innerHTML =s; 单双引号要注意!!
      

  2.   

    嗯对,还有就是换行的时候不能直接换,比如
    var s="ccxcx"+
    "<table>";
      

  3.   

      <div style="display:none;" id="divText"><table>
        <tr>
        <td style="width: 3px">
        adsdfsadfasdf
    </td>
        </tr>
        </table>
    </div>如果不把换行符去掉的话,只有把你的HTML放到一个隐藏div里面
      

  4.   

    今天在做JAVASCRIPT的时候,发现老是出现”未结束的字符串常量”.自己找了下应该是传参数的时候,有特殊字符引起的.网上也找了下,也有好多出现这种情况.做下总结,以方便以后查阅.1.JAVASCRIPT引用时,使用的字符语言不一致.
    比如:<script type=”text/javascript” src=”xxx.js” charset=”UTF-8″>.xxx.js文件内部使用的是GB2312的格式,外面调用使用的是UTF-8,所以文件内部部分特殊字符因为格式不一致,出现乱码,造成此原因.2.JAVASCRIPT输出HTML字符时,前后标记不匹配.
    这种比较常见,往往在输出字符串时,出现单引号(’)或双引号(”)不配对,或者是在document.write()的时候,没有正确输出单引号(’)或双引号(”)3.参数内出现HTML标记语言或包含换行符
    我今天所遇到的是这种情况.因为我所得到的数据以参数形式传给一函数,结果该数据里包含换行符,造成了此错误.
    如:一般测试时只使用单行的数据,是正常的,未出现这个错误,.
    当测试时使用多行数据,并使用回车链换行,就出行了此错误.因为里面包含了换行符对于第3种情况,我的解决方法是:不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可.
      

  5.   

    不直接将该数据以参数形式传递,而是先将其赋值在一个隐藏的文本内,需要调用的函数里只需读取该文本里的内容即可放到textarea里就可以,刚才我测试了
      

  6.   

    照你说的我写了:
        document.getElementById("TextArea1").value="<uc1:cpzs ID="Cpzs1" runat="server" />";
    可是还是报错.
    而且在页面执行后就变成:
       document.getElementById("TextArea1").value="<table>
    <tr>
    <td style="width: 3px">
    adsdfsadfasdf</td>
    </tr>
    </table>                               ";
    还是不行呀
      

  7.   

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="UCTest.aspx.cs" Inherits="UCTest" %><%@ Register Src="uc1.ascx" TagName="uc1" TagPrefix="uc1" %><!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 type="text/javascript">
        function addCtl()
        {
            event.srcElement.innerHTML = "<uc1:uc1 ID='Uc1_1' runat='server' />";
        }
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div onclick="addCtl()">
        
            
        
        </div>
        </form>
    </body>
    </html>using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class uc1 : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Page.ClientScript.RegisterStartupScript(this.GetType(),"",@"<table border='1'>
        <tr>
        <td style='width: 3px'>
        adsdfsadfasdf
    </td>
        </tr>
        </table>");
        }
    }
      

  8.   

    document.getElementById("TextArea1").value="<uc1:cpzs ID="Cpzs1" runat="server" />";XXXX.innerHTML ="document.getElementById("TextArea1").value";
    我就是这么写的
      

  9.   

    cpzs.ascx里就是:<%@ Control Language="C#" AutoEventWireup="true" CodeFile="cpzs.ascx.cs" Inherits="cpzs" %><table>
    <tr>
    <td style="width: 3px">
    adsdfsadfasdf</td>
    </tr>
    </table> 
      

  10.   

    就是通过innerHTML把用户控件加载到DIV里.
      

  11.   

    直接写HTML代码不行吗?不用RegisterStartupScript
      

  12.   

    我刚才又试了一下,确实
    要把控件代码
    <%@ Control Language="C#" AutoEventWireup="true" CodeFile="cpzs.ascx.cs" Inherits="cpzs" %><table>
        <tr>    
        <td style="width: 3px">    
        adsdfsadfasdf</td>
        </tr>    
    </table> 改为后台代码才行
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;public partial class uc1 : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Page.ClientScript.RegisterStartupScript(this.GetType(),"",@"<table border='1'>
        <tr>
        <td style='width: 3px'>
        adsdfsadfasdf
    </td>
        </tr>
        </table>");
        }
    }
      

  13.   

    远方你的代码我试了,不过不管加不加: <div onclick="addCtl()">   </div>页面都会输出用户控件.
    无法控制.