我找到的解决方案需要更改Website\sitecore\shell\Controls\Rich Text Editor\RichText Commands.js
文件并且只要您不重新加载页面就可以工作。通过将信息存储在cookie中而不是使用变量prevId来编辑其他页面时,您可以轻松地将其扩展为工作。
首先,您需要在文件开头定义变量:
var prevId = null;
每次插入 Sitecore 链接时,我们都会将最后选择的项目 ID 分配给该变量。
第二步是在选择链接后扩展scInsertSitecoreLink
函数以分配prevId
变量:
function scInsertSitecoreLink(sender, returnValue) {
if (!returnValue) {
return;
}
prevId = returnValue.url.match(/id\=[a-fA-F0-9]{32}/g);
if (prevId) {
prevId = prevId[0].substr(3);
}
... rest of the scInsertSitecoreLink goes here
最后一步是修改RadEditorCommandList["InsertSitecoreLink"]
它使用prevId
变量值的函数,如果它在尝试分配scItemID
保存当前项目 id 之前设置:
RadEditorCommandList["InsertSitecoreLink"] = function(commandName, editor, args) {\
... here goes the original code of the function up to
if (!id) {
... and the code in the bracket
}
... and now we try to assign the prevId which was set after the last link was chosen
if(!id && prevId) {
id = prevId;
}
... and here goes the rest of the function
if (!id) {
id = scItemID;
}