接下来是一段在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