Ali*_*hid 2 sitecore rich-text-editor sitecore7
前端(html和css)的设置方式使得Sitecore内容字段中的描述文本需要包含一个<p>
标记.
因此,默认情况下,RTE将文本包装在<p>
tag = TRUE中.但是你需要点击 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));
}
Run Code Online (Sandbox Code Playgroud)
好的,嗯?毕竟,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>
Run Code Online (Sandbox Code Playgroud)
以及scSendRequest
EditorWindow.aspx的overrode功能.
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;
}
Run Code Online (Sandbox Code Playgroud)
和YAY ..双彩虹和独角兽.
归档时间: |
|
查看次数: |
2814 次 |
最近记录: |