我使用 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'
。
我做错了什么?
感谢您的宝贵帮助。
答案 0 :(得分:1)
解决方案是在父框架中使用回调。因此,当您需要执行操作时,请使用以下代码:
parent.window.parent.actionFromParent();