0

これに関して他の投稿を見たことがありますが、次の方法が何らかの理由で機能していません。

onclick="parent.testing();" 

今、完全な話のために。すべてのJSファイルを格納するindex.htmlがあります。また、インデックス内に、空の'div'タグがあります。jQueryを使用して、page1.htmlファイルを空の「div」に追加しています。したがって、インデックスは次のようになります。

<html>
<head>
<script files>
<script>
ready { function testing(){do stuff;} }
</script>
</head>
<body>
<div><iframe src="page1.html" (added via jQuery)></div>
</body>
</html>

現在、page1.htmlファイルで、リンクがクリックされたときに関数を呼び出そうとしています。しかし、次のエラーが発生します。

Uncaught TypeError: Cannot call method 'testing' of undefined 

私も次のことを試しましたが、うまくいきませんでした:

onclick="window.testing();"
onclick="window.frames[0].testing();" 
4

2 に答える 2

1

親ページのスクリプトは有効なJavaScriptではありませんが、次のことを前提としていますready { ... }

<script>
ready { function testing(){do stuff;} }
</script>

testing()...は、その準備完了ハンドラー内からのみアクセスできるように、その準備完了ハンドラー内のローカル関数として宣言しているドキュメント準備完了ハンドラーを表すことになっている簡略化です。testing()親ページでグローバルにする必要があります。

<script>
$(document).ready({ /* your on ready stuff here */ });

function testing(){ /* do stuff; */ }
</script>

...そして、を使用してiframeから呼び出すことができるはずですparent.testing()

于 2012-08-23T22:10:15.643 に答える
0

私があなたの質問を理解しているなら、あなたの問題はあなたの関数が呼び出されていないということですよね?したがって、おそらく解決策は、これを「page1.html」に入れることです。

<script type="text/javascript" src="your_js_file"></script>
于 2012-08-23T22:02:05.507 に答える