gpt4 book ai didi

Iframe 中定义的 Javascript 回调函数

转载 作者:行者123 更新时间:2023-11-28 02:36:52 24 4
gpt4 key购买 nike

我正在尝试将 Drools-Guvnor 独立编辑器集成到我的 spring-webflow-jsf-richfaces 应用程序中。我在 iframe 中显示 guvnor-editor(在 richfaces-modalpanel 内)。根据文档,guvnor 公开了一个 javascript 对象以及回调函数,以便父应用程序进行通信

    var guvnorEditorObject = {
getDRL: function (callbackFunction),
getBRL: function (callbackFunction),
registerAfterSaveAndCloseButtonCallbackFunction: function (callbackFunction),
registerAfterCancelButtonCallbackFunction: function (callbackFunction),
getAssetsUUIDs: function()
}

现在我的问题是如何在 jsf 页面中注册这些回调函数?例如,如果用户单击关闭按钮,我想关闭模式面板窗口。示例代码对我来说非常有帮助。

最佳答案

我已经通过使用 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);
}
}

关于Iframe 中定义的 Javascript 回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13346797/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com