2010/08/03

[JavaScript]iframeの親の関数をコールする

iframeの参照先となっているページからその親の関数を呼び出す方法を調査しました。

参考にさせていただいたサイト
hoshikuzu | star_dust の書斎:parent

-------------【追記(2010/03/26 19:07)】-------------
下記の方法でやっていたところ、再度エラーが出る(例によって表示はされないけど)ので、
結局 window.parent.fn() で取りました。
エラーがでたりでなかったりなんなんだよもう。。
---------------------------------------

via:【JavaScript】IE6のwindow.parent


というわけで、下記のプログラムを作成
<-- test_01.html -->
<html>
<head>
<title></title>
</head>
<body>
<iframe src="./test_02.html"
height="100"
width="100"></iframe>
<script type="text/javascript">
function calledFunc(){
alert("Hello iFrame");
}
</script>
</body>
</html>

下記のファイルは、iframeの参照先
<-- test_02.html -->
<html>
<head>
<title></title>
<script type="text/javascript">
</script>
</head>
<body>
<input
type="button"
value="Run"
onclick="(function(){
window.parent.calledFunc();
}());"
>
</body>
</html>

先ほども引用したのですが、ポイントなるのは、「window.parent.関数名()」でコールできるところ。実際に、IE8とFireFoxで試したところ正常終了できました。

これで、iframeから親の関数を呼び出すのも怖くないぞと。

0 コメント:

コメントを投稿