请教一下:
如何在iframe模式下打开ModalTrigger 窗体之后,在ModalTrigger 中的网页中如何关闭Modal自身?
我目前的做法是:
一、
在ModalTrigger 中将ModalTrigger 对应的HTML移除,如下:
$( "#triggerModal", window. parent. document). remove(); $ ( "div.modal-backdrop" , window . parent . document ). remove ();
但是这样做存在一个问题,不会去修改ModalTrigger对象的isShown属性。导致第二次打开Modal的时候,需要点击两次才能生效(第一次:调用toggle、close方法,第二次:调用toggle、show、ajustPosition)
二、
我想在ModalTrigger 自身中调用方法再次获取到对象,调用ModalTrigger 的关闭方法,如下:
var myTrigger = $. zui. modalTrigger; myTrigger. close();
调用之后进入了
ModalTrigger.prototype.close = function(callback, redirect) {
if(callback || redirect) {
this.$modal.on('hidden' + ZUI_MODAL, function() {
if($.isFunction(callback)) callback();
if(typeof redirect === STR_STRING) {
if(redirect === 'this') window.location.reload();
else window.location = redirect;
}
});
}
this.$modal.modal('hide');
};
this.$modal.modal('hide')这一行报如下错误
Uncaught TypeError: Cannot read property 'modal' of undefined
在 Iframe ModalTrigger 中关闭 ModalTrigger 自身
请教一下如何解决这个问题?谢谢帮助!
另提一个无关此问题的小意见:能不能再富文本框中加一个代码标签?
报错是因为$.zui.modalTrigger并不是打开你这个对话框的实例。
你试试这个:window.parent.$.zui.closeModal();
富文本编辑器是有插入代码的功能选项的,参考Kindeitor的文档。