JavaScript

同一ドメインのインラインフレームの関数を呼び出す

More than 5 years have passed since last update.

基本的には


JavaScript

document.getElementById( 'iframe_id' ).contentWindow.func();


で呼び出すことができる。

これで呼び出せない場合があり、undefinedが返ってきた。

原因としては、インラインフレームの読み込みが終わる前に関数を呼び出していた模様。

色んな記事を探してもこんなことがあまり起こっていなかったし、どういうときにこうなるかはちょっと不明。ただ、読み込みに時間が掛かってるだけ?

対象法しては、


JavaScript

document.getElementById( 'iframe_id' ).onload = function ()

{
document.getElementById( 'iframe_id' ).contentWindow.func();
};

として、インラインフレームの読み込みが完了したあとに、関数を呼び出すと無事呼び出すことができました。