Javascript字符串格式化

本文关键字:格式化 字符串 Javascript | 更新日期: 2023-09-27 18:09:49

在我的c# web应用程序中,我必须通过点击服务器端按钮代码将下面的html字符串传递给客户端函数。我正在使用Firefox浏览器。

htmlString是:

<div id='divPopUpToXyz.abc@def.com'>
  <table>
    <tr>
      <td>
        <img width='10' src='../images/cross.gif' onclick='deleteDiv(1,'ToXyz.abc@def.com','To')>
       </td>
       <td>
         Xyz.abc@def.com
       </td> 
     </tr>
   </table>
 </div>

在服务器端,我用它来调用所需的JS函数:

Page.ClientScript.RegisterStartupScript(this.GetType(), "CallMyFunction", "returnValue('" + htmlString+ "');", true);

但是我得到了这样的错误:

参数列表后面的"missing "

我检查了firebug,发现htmlstring被扭曲成这样:

<div id='divPopUpToXyz.abc@def.com'>
  <table>
    <tbody>
      <tr>
        <td>
          <img src="../images/cross.gif" onclick="deleteDiv(1,"     toXyz.abc@def.com','to')="" width="10">
        </td>
        <td>
          Xyz.abc@def.com
        </td>
      </tr>
   </tbody> 
 </table>
 </div>

我不明白为什么它会这样变化。

Javascript字符串格式化

您没有传递您期望传递的值

onclick='deleteDiv(1,'ToXyz.abc@def.com','To'

被解释为两个属性

onclick='deleteDiv(1,'
ToXyz.abc@def.com','To'=""

因为1后面的第一个'终止了onclick属性赋值

将htmlString赋值更改为

var htmlString = HttpUtility.JavaScriptStringEncode(@"<div id='divPopUpToXyz.abc@def.com'><table><tr><td><img width='10' src='../images 
/cross.gif' onclick='deleteDiv(1,""ToXyz.abc@def.com"",""To"")'>   
 </td><td>Xyz.abc@def.com</td> 
 </tr></table></div>");

你应该可以走了