2011-11-29 35 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之前)將新行嵌入到字符串中。

快樂編碼。

相關問題