javascript - Sharepoint 富内容编辑器修改从自定义工具栏按钮添加的 HTML

标签 javascript sharepoint richedit

摘要:我想问的是 - 我们是否以完全错误的方式处理此问题,或者是否有办法阻止 Sharepoint 或其丰富的编辑器修改 HTML被添加了吗?

我被“扔”进了一个围绕 Sharepoint 2007 的项目(相信我,我对此并不完全满意),所追求的事情之一就是使用丰富内容的方法-供用户放置“丰富内容”的区域,然后向内容添加某些“附加内容”,例如可扩展的内容区域、对话框等。

最初的攻击计划是在 Sharepoint 富内容编辑器工具栏中添加一个自定义按钮,我们有代码可以做到这一点,并且它可以工作等等,并将 javascript 事件处理程序附加到某些元素(这也可以工作)一点。

我们正在做的一件事是使用 <a>元素和后续的 <div>设置一个对话框(使用 jQuery UI 来实现魔法)。当用户单击“插入对话框”按钮时,以下内容将插入到编辑器中:

<a href="#" class="dialog-trigger">Click me to open the dialog</a>
<div class="dialog-content">
    this is some dialog content etc
</div>

当页面加载时,我们连接到 .dialog-trigger click 方法,获取 a元素的同级元素是 .dialog-content并将其设置为对话框。只要您不想编辑任何内容,此操作就“有效”。

我发现,一旦您开始编辑 .dialog-content 中的内容, DIV 丰富内容编辑器开始修改 HTML,例如,添加列表将添加到以下 HTML 中:

<li><div class=dialog-content>Some list item</div></li>
<li><div class=dialog-content>Some list item 2</div></li>
<li><div class=dialog-content>Another list item</div></li>

正如你所想象的,这破坏了我们正在尝试做的事情。

总结一下我想问的问题 - 我们是否以完全错误的方式解决这个问题,或者是否有办法阻止 Sharepoint 或其丰富的编辑器修改添加的 HTML?

最佳答案

如果您只是将 HTML 按原样放入编辑器内容中,您将无法阻止编辑器弄乱您的 HTML。如果您有一些必须保持完整的内容,那么您需要将其存储在其他地方,并在编辑器中为其设置一个占位符,其中包含实际内容的 ID(例如,在 中带有 ID 的占位符图像) alt 属性)。当编辑器保存时,您需要将这些占位符替换为真实的 HTML 内容,反之亦然,当编辑器加载时。

关于javascript - Sharepoint 富内容编辑器修改从自定义工具栏按钮添加的 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1604409/

相关文章:

javascript - Puppeteer 等待 url

sharepoint - VSeWSS 1.2 的最佳部署方法

c++ - 从聊天窗口中禁用/删除插入符号

c++ - 如何正确处理来自 MSFTEDIT_CLASS (RichEdit) 控件的 Windows 消息?

javascript - 通过正则表达式从字符串中查找随机字符串(javascript)

javascript - 在绝对 div 位置自动扩展 textarea 无法正确收缩

c# - 将项目计数添加到 LINQ 选择

sharepoint - 您如何处理 Sharepoint 环境中的代码提升?

德尔福。备忘录/RichEdit 的模拟

javascript - 如何阻止用户在 Angular 的文本框中输入 URL