我正在使用sharepoint 2007。
我有一个名为“用户门票”的列表,其中一列名为“内容”
我的问题是我正在尝试插入以下文字:
<script type=\"text/javascript\"> </script>
为了避免异常,我使用了'HtmlEncode'
但是,sharepoint忽略了这一点,只是在“内容”列中插入一个空白值。
我的代码:
ListsSoapClient _proxy = new ListsSoapClient();
string ContentValue =
HttpContext.Current.Server.HtmlEncode("<script type=\"text/javascript\"> </script>");
XmlDocument doc = new XmlDocument();
XmlElement batchElement = doc.CreateElement("Batch");
batchElement.InnerXml = "<Method ID=\"1\" Cmd=\"New\"> <Field Name=\"Ticket_x0020_Details\">ContentValue </Field></Method>";
_proxy.UpdateListItems("User Tickets", UtilHelper.GetXElement(batchElement));
如何让sharepoint接受此值:<script type=\"text/javascript\"> </script>
?
答案 0 :(得分:1)
SharePoint具有某种用户内容过滤功能。这取决于您要插入的列。它的类型是什么?如果它是富文本,SharePoint将不允许插入脚本内容。
Upd:过滤脚本的想法很自然。想象一下,如果允许的话,当您打开“AllItems.aspx”视图并执行所有脚本时会发生什么。
您可以做什么,是否可以对内容进行双重编码,以便源代码中的<script>
变为&lt;script&gt;
字段中的ContentValue
。这样,您的脚本将作为文本保存到列表项中。要将其作为脚本执行,您必须始终致电HtmlDecode
。