【问题标题】:Invoking Parent JavaScript from IFRAME IE11从 IFRAME IE11 调用父 JavaScript
【发布时间】:2017-04-28 17:39:18
【问题描述】:

我要做的就是在 iframe 父级上调用 JavaScript 函数。 这也在同一个域上。

如果我创建一个按钮来从框架中触发父级:

<script>
        function onClick() {
            parent.hidePrintButton();
        }
</script>
<button id="test" onclick="onClick();">Call Parent Window Function</button>

它在所有浏览器中都按预期工作。

但是,当我有一个执行 ajax 调用时:

parent.hidePrintButton();

在 IE 中不会调用父级,但在所有其他浏览器中都会调用。

然后我得到错误:

对象不支持属性或方法'hidePrintButton'

这看起来像当我与页面交互时,父级工作但在 iframe onload 中运行时却没有。

我已经尝试过 postmessage、事件侦听器、绑定、父级。而且这些似乎都无法在父页面上运行 JavaScript。

虽然这可能与按下按钮并且焦点位于 iframe 上的时间有关。

【问题讨论】:

    标签: javascript jquery html internet-explorer iframe


    【解决方案1】:

    【讨论】:

    • 这个我也试过了,没用。
    【解决方案2】:

    无法仅在 IE11 上解决问题。

    解决此问题的唯一方法是创建一种方法来轮询 iframe,直到它返回您正在寻找的响应:

    var keepPolling = true;
    function pollFrame() {
       if ($("#refFrame")[0].contentWindow.processed){
          setProcessed();
          keepPolling = false;
       }
       if(keepPolling) {
          setTimeout(pollFrame, 750);
       }
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-19
      • 2013-10-14
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多