接下來是一段在C#中被HtmlEncoded發送到瀏覽器(在回調期間)的文本。一旦收到,在JavaScript中,我做myDiv.innerHTML = theStringBelow
;C#HtmlEncode,然後使用.innerHTML插入Javascript
<span xmlns:asp="http://schemas.microsoft.com/ASPNET/20"
xmlns:SharePoint="Microsoft.Sharepoint.WebControls"
xmlns:ext="my_namespace:my_xslt_extension">Some text to be shown.</span>
但是,結果是什麼,我只是看到上面顯示的確切文字。它不被視爲添加到DOM的html元素,而是純文本。當我通過javascript添加完全相同的文本(例如,我跳過回調,並且只是說myDiv="exactString
「)它會正確添加(它被視爲跨度)。非編碼呢?如果我沒有編碼的?
開始編輯 問題仍然屹立爲了好奇,但是我已經沒有HtmlEncoding的數據簡單地解決了該問題。較早的問題,必須添加到這一個,讓我覺得HtmlEncoding仍然是必要的。
當我使用上面的span時,一切正常。然而,當我有真實的數據時,我收到一個錯誤,說「未終止的字符串常量」。這是否意味着我在服務器端形成了一個糟糕的字符串,然後我將其丟棄到客戶端?或者我需要以某種方式首先逃避服務器上的字符串? ..順便說一句,就像我說的,我給的例子,工作正常,並從服務器發送它。無論如何,感謝您的幫助。 – KyleM 2011-03-24 00:02:50
如果您的數據已經被轉義,那麼當您嘗試再次轉義時,可能會看到此錯誤。但沒有看到你的實際執行情況,我不能肯定地說。 – sholsinger 2011-03-24 00:07:28
另外,@KyleM我需要知道什麼系統正在產生該錯誤。這是JavaScript錯誤還是C#編譯器錯誤? – sholsinger 2011-03-24 03:29:58