2014-09-30 57 views
0

我在窗口中有兩個框架。幀A和幀BJavascript:在調用之前檢查兄弟框架中是否存在函數

我要調用一個函數,它是在一幀幀從B.要做到這一點我使用:

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

美中不足的是,該功能可能無法實際存在於幀A.

我想在調用之前檢查它是否存在。

我試過這個,但得到了一個JS錯誤。

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

錯誤:

TypeError: undefined is not a function 

更新:

你們都是正確─我正在運行的實際代碼爲typeof運算parent.frames [ '主機'] myfunction的()括號用。對不起:/我該怎麼做最好的答案?

+0

而你得到的JS錯誤是......? – Pointy 2014-09-30 22:20:36

+0

TypeError:undefined不是函數 – danielb 2014-09-30 22:24:55

+0

如果'typeof'檢查成功,並且您在該'if'內部調用該函數(或者只有在該'if'成功時),那麼它才能工作。這是全部**相關代碼嗎? – Pointy 2014-09-30 22:33:06

回答

0

你的代碼應該可以工作。看起來myfunction不在子窗口的全局範圍內。當您參考parent.frames['mainframe']時,您實質上是在引用「大型機」iframe中的window對象。這裏有一個JSFiddle,其中子對象window明確地設置並且工作得很好。

JSFiddle Example

+0

對不起,我失去了你。我如何檢查功能是否存在於兄弟框架? – danielb 2014-09-30 22:44:02

+0

實際上你做得很對。在你的代碼中還有其他奇怪的事情發生。有沒有其他相關的JavaScript? – Hacknightly 2014-09-30 22:46:22

相關問題