在IFrame中运行JS函数

时间:2014-02-05 09:17:57

标签: 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'。 我做错了什么?

感谢您的宝贵帮助。

1 个答案:

答案 0 :(得分:1)

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

parent.window.parent.actionFromParent();