2011-11-29 33 views
1

我正在编写一个小脚本,当它打开时,它将在对话框中运行。在代码中,我有一个带有html代码的字符串类型变量,如string script = <a onclick=runthis('This will not work with white spaces')><a/>。这不会工作,但如果我拿出所有的空白,它会正常工作。问题是有没有办法通过空格或其他任何方式来传递参数?感谢您的任何示例或建议。变量字符串中有html,并且不允许javascript参数中的空格

错误的小例子,这是c#中的一个字符串。

"<div id=&quot;DialogEditPhoto&quot; style=&quot;display: inline-block; position: relative; cursor: pointer&quot; " + 
        "onclick=EditPhoto(&quot;Wlcometo thesouth&quot;,&apos;dsaasd&apos;,&apos;" + pic.ID + "&apos;);>" 
+0

摆脱任何破解空白的行。它应该包含在编辑器中,并且是一个长连续的字符串。这是非常具体的JS – comu

+0

不知道我关注。这是所有的行之前,我只是现在两行更好地阅读。你是这个意思吗?如果不是,你可以把例子 – user516883

+0

是的,我是多数民众赞成我的意思 – comu

回答

1

一些编码你正在做的性格有点不必要。你需要引用你的JS函数,这就是为什么空白造成它不起作用。

string div = "<div id=\"DialogEditPhoto\"" + 
    " style=\"display: inline-block; position: relative; cursor: pointer\"" + 
    " onclick=\"EditPhoto('Wlcometo thesouth','dsaasd','" + pic.ID + "');\">" + 
    "</div>" 

而且你将它发送到客户端之前,让.NET为你做的字符编码:

string encoded = HttpUtility.HtmlEncode(div); 

而且,你没有关闭开启<div>标签;我不确定你是否打算这么做,但我仍然加了它。

+0

谢谢你是这个问题,不知道为什么我没有捕捉到 – user516883

0

"<div id=&quot;DialogEditPhoto&quot; style=&quot;display: inline-block; position: relative; cursor: pointer&quot; " +"onclick=EditPhoto(&quot;Wlcometo thesouth&quot;,&apos;dsaasd&apos;,&apos;" + pic.ID + "&apos;);>"

^^复制和粘贴

0

JavaScript字符串文字不能包含文字换行符

实际上有在“LineTerminator”类不能出现在字符串直接字面4个字符:LF /换行,CR /回车,LS /行分隔符和PS /段分隔符。有关更多信息,请参见EMCAScript第5版规范的第7.8.4节:字符串文字和7.2:空白部分。

// read the error console, this is a syntax error and is reported by FF as: 
// SyntaxError: unterminated string literal 
var bad = "because it 
    contained a literal newline" 

// this is valid syntax 
var good = "because it\n\ 
    didn't contain one" 

注意的是,在第二情况下,最后“\”(这必须上线的最后一个字符)表示,该字符串字面量不会终止,但继续到下一行(无字符占用它的位置,因此\n之前)将新行嵌入到字符串中。

快乐编码。

相关问题