gpt4 book ai didi

sitecore - 自定义 Sitecore RichTextEditor 以添加默认包装器

转载 作者:行者123 更新时间:2023-12-04 00:08:24 24 4
gpt4 key购买 nike

前端(html 和 css)的设置方式是,对于来自 Sitecore 内容字段的描述文本需要有一个 <p>标签包裹在它周围。

所以默认情况下,RTE 将文本包装在 <p> 中。标签 = 真。但问题是您需要按 Enter 或复制/粘贴多个段落。

如果只有一行,我们如何强制 Sitecore 添加 P 标签?

最佳答案

幸运的是,从 dll 中,一个特定的功能引起了我的注意:

protected virtual void SetupScripts()
{
foreach (XmlNode node in Factory.GetConfigNodes("clientscripts/htmleditor/script"))
this.Result.Scripts.AppendFormat("<script src=\"{0}\" language=\"{1}\"></script>\n", (object) XmlUtil.GetAttribute("src", node), (object) XmlUtil.GetAttribute("language", node));
}

不错,嗯? SITECORE 的开发人员毕竟很聪明。所以我在 web.config 中做了这个,

<!— CLIENT SCRIPTS
These script files are included in the client, e.g. '<script src="/myscript.js" language="JavaScript"/>'
—>
<clientscripts>
<everypage />
<htmleditor>
<script src=”/assets/js/CustomRTE.js” language=”javascript”/>
</htmleditor>
</clientscripts>

并从 EditorWindow.aspx 覆盖 scSendRequest 函数。

window.scSendRequest = function(evt, command) {
var editor = scRichText.getEditor();
if (editor.get_mode() == 2) { //If in HTML edit mode
editor.set_mode(1); //Set mode to Design
}
var htmls = editor.get_html(true);
var regex = /<p[^>]*>.*?<\/p>/i;
var match = regex.exec(htmls);
if(match == null && htmls != null) {
htmls = "<p>" + htmls + "</p>";
}

//$("EditorValue").value = editor.get_html(true);
$("EditorValue").value = htmls;

scForm.browser.clearEvent(evt);

scForm.postRequest("", "", "", command);

return false;
}

AND YAY .. 双彩虹和 unicorn 。

关于sitecore - 自定义 Sitecore RichTextEditor 以添加默认包装器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24198822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com