我正在创建一个自定义项目编辑器,并使用以下博客文章作为参考,以响应内容编辑器中的“保存”事件,这样我就不需要为我创建第二个令人困惑的保存按钮用户。
http://www.markvanaalst.com/sitecore/creating-a-item-editor/
我可以将值保存到项目中,但正常的“内容”选项卡中的值也会被保存,从而覆盖我的值。我通过Firebug证实了这一点。有没有办法防止这种情况,或者确保我的保存总是在默认保存之后?
我将此作为支持票和SDN,但想知道SO社区可以提出什么。
谢谢!
答案 0 :(得分:0)
尝试使用基于iframe的解决方案,该解决方案使用IFrame字段读取并保存在项目编辑器中输入的值。它需要被清理一下,感觉就像一个接口黑客,但它似乎正在工作。
在我的项目编辑器中:
jQuery(function () {
var parentScForm = window.parent.scForm;
parentScForm.myItemEditor = window;
});
function myGetValue(field) {
var values = [];
jQuery('#myForm input[@name="' + field + '"]:checked').each(function () {
values.push(jQuery(this).val());
});
var value = values.join('|');
return value;
}
在我的Iframe字段中:
function scGetFrameValue() {
var parentScForm = window.parent.scForm;
if (typeof (parentScForm.myItemEditor) != "undefined") {
if (typeof (parentScForm.myItemEditor.myGetValue) != "undefined") {
return parentScForm.myItemEditor.myGetValue("myLists");
}
}
return null;
}
理论上,我可以在项目上有多个字段,这些字段以这种方式“委托”到项目编辑器 - 使用内容编辑器保存而不是试图对抗它。我对scForm“搭便车”在我的网页之间进行沟通感到有些不安 - 可以通过更好的方法咨询我们的常驻Javascript黑客。
对解决方案有何评论?