javascript - 在 IFrame 中运行 JS 函数

标签 javascript iframe mootools invoke

我使用 Mootools 动态创建了一个 iFrame。在我的 iFrame 中,我想执行一个函数来自动填充它。 到目前为止,我有以下代码:

    var mApp = this.app;
    var iframe = new Element('iframe', {
      'src' : 'frame_fittingbox.html',
      'style' : 'height:100%;width:100%;background:transparent;border:none;',
      'events' : {
        'load' : function() {
          var doc_iframe = (iframe.contentWindow) ? iframe.contentWindow : (iframe.contentDocument.document) ? iframe.contentDocument.document : iframe.contentDocument;
          doc_iframe.run(mApp, 'demo'); // FittingBox account
        },
      },
    });

    var container = this.app.page();
    iframe.inject(container);

在 iFrame 中,我有该代码:

<html>
  <head>
    <script src="./app/components/exported_jsfile.js" />
    <script>
      function run(app, account) {
        document.write('\x3Cscript type="text/javascript" src="http://my.website.com/js/' +account+ '/jsfile.js">\x3C/script>');

        var customClass = new My_Custom_Class(app, document.body);
        customClass .open();
      }
    </script>
  </head>

  <body>
    Loading ...
  </body>
</html>

它不起作用,因为从未调用 run 函数。在控制台中,我收到以下消息:Uncaught TypeError: Object [object global] has no method 'run'。 我做错了什么?

感谢您的宝贵帮助。

最佳答案

解决方案是在父框架中使用回调。因此,当您需要执行操作时,请使用以下代码:

parent.window.parent.actionFromParent();

关于javascript - 在 IFrame 中运行 JS 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21572988/

相关文章:

php - 为动态 JS 表创建行 ID

javascript - Facebook 图 FB.login 连接对话框,取消事件

javascript - 通过ajax发送带有多个参数的表单

javascript - 存在 iframe 时,Android webview 无法正确处理事件

javascript - 如何根据窗口的顶部 URL 更改 iframe 内的 Logo

javascript - 有没有办法使用 DOM 找到与特定样式匹配的所有元素?

javascript - Mootools 事件导致 IE7/IE8 无限循环

javascript - 用 jQuery 实现 Prototype 风格的类结构

javascript - 在传单弹出窗口中显示图像

jQuery 不适用于 iframe 内容