Javascript:在调用之前检查函数是否存在于同级框架中

Javascript: Checking if function exists in sibling frame before calling

本文关键字:存在 是否 于同级 框架 函数 检查 调用 Javascript      更新时间:2023-09-26

我在一个窗口中有两个框架。帧A和帧B。

我想从帧B调用帧a中的一个函数。为此,我使用:

 parent.frames['mainframe'].myfunction();

问题是,该功能实际上可能不存在于帧A中。

我想在打电话之前检查一下它是否存在。

我尝试过这个,但是得到了一个JS错误。

if ( typeof parent.frames['mainframe'].myfunction == 'function' ) { 
        //function_name is a function
}

错误:

TypeError: undefined is not a function

更新:

你们都是对的——我运行的实际代码是带括号的parent.frames['mainframe'].myfunction()类型。对不起:/对于最佳答案我该怎么办?

您的代码肯定可以工作。myfunction似乎不在子窗口的全局范围内。当您引用parent.frames['mainframe']时,实际上是在引用"大型机"iframe中的window对象。这里有一个JSFiddle,其中的子函数是在window对象上显式设置的,并且工作得很好。

JSFiddle示例