我正在尝试将Drools-Guvnor独立编辑器集成到我的spring-webflow-jsf-richfaces应用程序中。我在一个iframe中(在一个richfaces-modalpanel中)显示guvnor editor。根据文档,guvnor公开了一个javascript对象以及供父应用程序通信的回调函数
var guvnorEditorObject = {
getDRL: function (callbackFunction),
getBRL: function (callbackFunction),
registerAfterSaveAndCloseButtonCallbackFunction: function (callbackFunction),
registerAfterCancelButtonCallbackFunction: function (callbackFunction),
getAssetsUUIDs: function()
}现在我的问题是如何在jsf页面中注册这些回调函数?例如,如果用户单击close按钮,我想关闭模式面板窗口。一个示例代码会对我很有帮助。
发布于 2012-11-14 17:05:46
我已经设法通过使用javascript setTimeout函数解决了这个问题。
根本问题是guvnorEditorObject是动态创建的,因此无法立即加载iframe。
这是加载iframe时调用的代码。
function register() {
var guvnorEditorObject = window.document.getElementById('myIframe').contentWindow.guvnorEditorObject;
if(guvnorEditorObject){
//guvnorEditorObject.getDRL(function(drl){alert('drl: '+drl);})
//guvnorEditorObject.getBRL(function(brl){alert('brl: '+brl);})
guvnorEditorObject.registerAfterSaveAndCloseButtonCallbackFunction(function(){guvnorEditorObject.getDRL(function(drl){alert('drl: '+drl);window.close();})});
guvnorEditorObject.registerAfterCancelButtonCallbackFunction(function(){alert('Cancel button clicked');});
//alert(guvnorEditorObject.getAssetsUUIDs());
}else{
setTimeout(register,250);
}
}https://stackoverflow.com/questions/13346797
复制相似问题