6

これを前置きさせてください...私はこの質問/回答を参照しましたが、手がかりが含まれているようですが、まだ全体像がわかりません

別のフレームのコンテキストで JQuery を実行する

基本的に、インデックスページの構造はこれです

<html>
<body>
  <div class="frames-wrap">
      <iframe id="this-iframe" src="location.php">

      </iframe>
  </div>
</body>
</html>

location.php には、そのように設定された 2 つのフレームを持つフレームセット (私の考えではありません...) が含まれています...

<frameset cols="350,*">
  <frame src="search.php" id="frame_search" name="search"/>
  <frame src="edit.php" id="frame_edit" name="edit" />
</frameset>  

インデックス ページとこれらの要素の間でオブジェクトを操作したい場合、どうすればよいでしょうか。

コンテキストは次のようなものにする必要があると考え続けていますwindow.parent.frames[0].document...他に何が欠けていますか?

4

4 に答える 4

4

technicolorenvy からのリンクに答えがあると思いますが、セレクターには、コンテキストを設定できるあまり知られていない 2 番目のパラメーターがあります。

このようなもの:

var iframeDoc = document.getElementById('myIframe');
iframeDoc = (iframeDoc.contentWindow) ? iframeDoc.contentWindow : (iframeDoc.contentDocument.document) ? iframeDoc.contentDocument.document : iframeDoc.contentDocument;


// From the parent window
$('p', iframeDoc).html('Hello from parent');

http://docs.jquery.com/Core/jQuery#expressioncontext

于 2010-01-27T21:30:50.477 に答える
4

序文: 同じドメインからのものでない限り、iframe コンテンツにアクセスすることはできません。

iframe 内の要素を選択するには、次のような jQuery 呼び出しを使用できます

element = $("#this_iframe").contents().find("#frame_search")

重要なのは機能を使用するcontents()ことです。トラバース・コンテンツを見る

于 2010-01-28T10:33:26.933 に答える
1

有効な JavaScript 識別子であるフレーム ID を指定すると役立ちます。その後window.top.this_iframe.frame_edit.document、コンテキストなどの構成を使用できます。

于 2010-01-27T22:15:58.047 に答える
0

これらはすべて役に立ちました。DOM で iframe を通過しようとしているときに爆撃を続けました。これは、ready() メソッドにコードが存在していたという事実から来ているように見えますが、iframe 内で呼び出されていたフレームセットは、$(document).ready() が起動されるまでにロードされませんでした。

多大なご協力とフィードバックをいただき、ありがとうございます。

于 2010-01-28T18:42:39.413 に答える