2011-07-04 15 views
0

1つのページに2つのiframeがあります。最初のiframeのURLはホストのURL(例:www.google.com)で、ローカルの2番目のURLはcontact.htmlです(両方とも同じJavaScript関数を使用しています)。hello function()iframeを使用したJavascript?

+0

私はあなたがもう少し問題を説明しなければならないと思います。一般的に、より高速に読み込まれるiframeのJavaScriptが最初に実行されます。 –

+0

問題が何であるかはわかりません。明確にするためにいくつかのHTMLコードを提供できますか? –

+0

あなたのコードを貼り付けるか、あなたを捕まえられません。 – huangli

答えて

0

あなたが電話しない限り、どちらも呼び出されません。だから、いつ呼び出すかによって決まります。

コールがページ内でインラインである場合、外部ページのコールが最初に呼び出されるのは、単に先頭が開始されるためです。

これらは異なるドキュメントに存在するため、どちらも別のドキュメントに上書きされません。ドキュメントは異なるホスト上にあるので、他のドキュメントのneither can be overwritten

+0

もし私がhttphandlerを追加したら、それは最初に呼び出すでしょうか? –

0

1)のみ同じドメインからのコードが同じドメイン
2から他のページで実行される)別のドメインの同じ名前の関数は、そのドメインからのスクリプトによって実行されなければならない

それ実行されているSAME関数ではなく、関数が(アラートのように)ブロックしている場合は、最初に読み込まれるページの問題になります。

0

どちらも信じられません。あなたはそれで関数を呼び出したい場合は、実際にはiframeを参照する必要があります。

document.getElementById('iframeid').contentWindow.myFunc(); 

心の中で裸それは親と同じ起源のだない限り、あなたはiframe内に何かをアクセスすることはできません。

0

に依存します。

あなたのページのhello関数は間違いなく最初に呼び出され

<script type='text/javascript'> 
    hello(); 
</script> 
<iframe src='www.google.com'></iframe> 

例えば

。この場合

<iframe src='www.google.com'></iframe> 
    .... more stuff 
<script type='text/javascript'> 
    hello(); 
</script> 

は、あなたはiframeのコンテンツが非同期でロードされたり、ページのハローコールの前に発火しない場合がありますので、予測することはできません。ただし、これらの関数が返された値にiframeを介してアクセスすることを計画している場合は、ブラウザのセキュリティ制限が適用される可能性があります。いずれにせよ、いくつかのコードを投稿してください。

関連する問題