访问在iframe src中定义的全局javascript对象



我在同一站点上设置了一个iframe为src。在iframe页面中,我有一个名为Rack的命名空间,其中包含一个名为app…

的模块。
Rack.app = function() {...}();

我可以访问那个机架吗?应用对象从我的外部页面-包含iframe的页面?比如

var iframe = document.getElementById('rackFrame');
iframe.contentWindow.Rack.app.doSomething();

但是这不起作用,我没有看到Rack对象

可以通过在调用名称空间的名称空间之外调用iframe中的函数来破解它吗?

var iframe = document.getElementById('rackFrame');

iframe.contentWindow.rackTrigger ();

在iframe中有一个函数:

function rackTrigger() {
Rack.app.doSomething ();
}

如果您希望触发一个函数,则不是最优雅的解决方案,但如果您希望对iframe进行许多更改,则更干净。

最新更新