2017-03-06 8 views
0

他のフレームからフレームの要素にアクセスする方法。例の場合:Javascriptの他のフレームからフレームの要素へのアクセス

main.htmlと:

<html> 
    <head> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    </head> 
    <frameset rows="33%,33%,*"> 
     <frame class="fra" src="frame1.html"/> 
     <frame class="fra" src="frame2.html"/> 
    </frameset> 
</html> 

frame1.html:

<html> 
    <HEAD> 
     <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    </HEAD> 
    <body> 
     <b><p id="para"> This is frame one.html </p></b> 
    </body> 
</html> 

がframe2.html:

<html> 
    <HEAD> 
     <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS" /> 
     <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
    </HEAD> 
    <body> 
     <b><p id="para"> This is frame two.html </p></b> 
     <button id="but"> Get data </button> 
     <script> 
      $(document).ready(function(){ 
       $("#but").click(function(){ 
        alert(window.frames[0].document.getElementById('para')); 
       }); 
      }); 
     </script> 
    </body> 
</html> 

ボタンがフレーム2からクリックされたら、私は必要frame1に存在する "para" id要素のデータを取得します。そこで、下記の のように要素にアクセスしようとしました。しかし、それは働かない。

window.frames[0].document.getElementById('para') 

これは、ようなエラーを示していますので、いずれか.Can window.frames[0]自体未定義 は、私はこの問題を解決するのに役立ち

Uncaught TypeError: Cannot read property 'document' of undefined

+0

ブラウザがアクションをブロックします親にアクセスするには、親を使用して、他のフレーム、 この[解答](http://stackoverflow.com/questions/25098021/securityerror-blocked-a-frame-with見ます原点を越えた​​原点からの原点) –

+0

[SecurityError:原点を持つフレームが原点を越えた​​フレームにアクセスできないようにブロックされました](http://stackoverflow.com/questions/25098021/securityerror-クロス・オリジン・フレームからの原点付きブロック・フレーム) –

答えて

1

"iframe1"や "iframe2"のようにiframeにidを挿入する必要があります。その後

<frame class="fra" src="frame1.html" id="frame1" /> 
    <frame class="fra" src="frame2.html" id="frame2" /> 

$(window.parent.document).find("#iframe1").contents().find("#para") 

はあなたがフレーム1にID "パラ" で要素にiframe2からのアクセス権を与える必要があります。

$(window.parent.document)を使用すると、iframe2からメイン文書に戻ってiframe1を検索すると、contents()によってiframe1の中に入ることができます。パラ "要素。セキュリティ上へ

関連する問題