我有一些"经典" Plone 4.3.6网站上的图块,其中包含richtext
字段和使用RelationChoice
窗口小部件的两个plone.formwidget.contenttree
字段。
我已经安装了plone.app.widgets 1.8.0
(以及p.a.contenttypes),我无法使新的TinyMCE和新的relateditems
模式小部件正常工作。如果我直接加载切片视图网址(在@@edit-tile/....
网址),小部件实际上会显示并正常工作。但是在iframe / overlay中,他们不会。
prep-overlay
看起来像这样:
jQuery('.tile-editable').each(function () {
jQuery(this).find('a.tile-edit-link, a.tile-delete-link').
prepOverlay({
subtype: 'iframe',
config: {
onLoad: function (e) {
jQuery('body').addClass('noscroll');
return true;
},
onClose: function() {
jQuery('body').removeClass('noscroll');
location.reload();
}
}
});
});
iframe在标头中加载++resource++plone.app.widgets.js
,字段按预期提供pat-relateditems
和pat-tinymce
个类。但是init
模式中的relateditems
方法永远不会被调用。我想iframe DOM不会被解析为模式,但我不知道在哪里寻找原因。
FWIW,控制台出错:
Uncaught Error: Mismatched anonymous define() module: function (){return eb}
http://requirejs.org/docs/errors.html#mismatch
在plone.app.widgets.js:166,但我不知道它来自哪里,或者它是否重要。
是否有任何技巧可以让模拟小部件在ifram叠加层中工作?
答案 0 :(得分:2)
要重新初始化您可以执行的所有模式:
var registry = require("pat-registry");
registry.scan(SELECTOR); // document or iframe or wherever you want to rescan all patterns.
恕我直言,你可以在onLoad方法上做到这一点。