在 Iframe ModalTrigger 中关闭 ModalTrigger 自身

lcw2004 2016-06-12 10:16:03

请教一下:

如何在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 自身


请教一下如何解决这个问题?谢谢帮助!



另提一个无关此问题的小意见:能不能再富文本框中加一个代码标签?


回帖列表
sunhao 2016-06-13 20:34:45

报错是因为$.zui.modalTrigger并不是打开你这个对话框的实例。


你试试这个:window.parent.$.zui.closeModal();


富文本编辑器是有插入代码的功能选项的,参考Kindeitor的文档。

1/ 1
ZSITE8.6