2013-04-02 25 views
0

在请求的页面开始加载之前,是否可以将方法添加到动态创建的iframe的Window对象?我希望这样做虽然iframe.contentWindow.myMethod = function() { },但是iframe.contentWindow在页面加载之前是NULL。在页面开始加载之前将方法添加到javascript的Window对象

我可以在onload事件触发时添加方法,但有些页面会对我添加的方法进行内联调用。由于浏览器在收到“方法不存在”时会执行代码,因此会引发错误。

我希望有一点我可以在内容下载和处理之前立即访问窗口对象。

回答

3

我希望有一点我可以在内容下载和处理之前立即访问窗口对象。

我非常怀疑有。也许你可以修改正在加载的页面,以便他们在父窗口中调用方法,而你知道你已经定义了方法。例如,而不是将它们这样做的:

someMethod("some arg"); 

他们会做

parent.someMethod("some arg"); 

...其中someMethod是打开的窗口内的全局函数。

Live Example | Source | Source of iframe

+0

这正是我目前正在做的,我希望摆脱对父母的呼吁,纯粹为了保持用法更清洁。看起来我运气不好:( – WDuffy

+0

@WDuffy:好吧,如果你控制了正在加载的页面,他们可以自己定义这个函数,或者当然,你可以把'var someMethod = parent.someMethod;'放在然后他们只是使用'someMethod(“一些arg”);'来进行调用,JavaScript如果对这些事情不够灵活,则什么也不是。:-) –

+1

这个downvoter喜欢分享一些关于你为什么这么想的反馈这是“无用”(使用downvote按钮中的短语)? –

-1

您不能修改页面前的页面启动加载 - 没有什么可以修改的。您可以修改它,同时加载 - 使用<head>顶部的<script>标签直接执行,而不是等到onload。尽管如此,你最快可以做到。

相关问题