2016-04-27 14 views
0

この質問に関連する多くのトピックを読みましたが、目的の出力が得られませんでした。jqueryを使用してiframeオブジェクトを操作する方法

私は内部のiframeを呼び出して、このようなHTMLてる:検査で見られるように

<body> 
    <section id="about-us"> 
    <div class="container"> 
     <div class="text-center"> 
     <div class="col-sm-8"> 
      <h2 class="maincontent"> 
    Why with Us 
    </h2> 
     </div> 
     </div> 
    </div> 
    </section> 
</body> 

:私はこのようなクラス名とH2タグを持つこのiframe内とし

<iframe class="full-screen-preview__frame" id="nitseditpreview" src="himu/index.php" name="preview-frame" frameborder="0" noresize="noresize" data-view="fullScreenPreview"> 

要素がブラウザ内にあります

Jqueryを使用することで、これを操作したいとします。たとえば、これに境界線を入れたいとします。私は多くのことを試してみたが、私は誰もがバグを修正した場合、このことがうまくいくと思い、私のjqueryのは、次のようになります。

$(document).load(function() { 
$('#nitseditpreview').load(function() { //The function below executes once the iframe has finished loading 
    $this = $(this); 
    $('#nitsmenu', this.contents()).css('border', 'solid 1px #777'); 
}); 

});

私が間違っている箇所が分からない場合でも、私は同じ発信元ポリシーにも従っています。

+0

JSがイフレン内部または外部で実行されていますか? – Richard

+0

iframeの外側 –

答えて

1

フレーミング文書とフレーミング文書の両方が同じドメインにある場合、サンドボックス属性またはCORSフープジャンプの必要はありません。しかし、他のエラーの数がここにあります

  • $(document).load(...)あなたが$this = $(this)を定義するが、その後、次の行で使用するようにしてください(それはすでにあなたのスクリプトが実行される時間によってロードされているので)$(document).ready(...)
  • する必要があります裸this
  • 私はそこかもしれない心配があなたは、次のよう

が動作するように見えるフレームドキュメントに存在していないよう#nitsmenuに一致するようにしようとしていますまだそのIFRAMEの​​のレースの条件である:

$(document).ready(function() { 
    $('#nitseditpreview').load(function() { 
     $(this).contents().find('.container').css('border', 'solid 1px #777'); 
    }); 
}); 

http://plnkr.co/edit/tCEHdU0ckg5q4w4tPVFU

+0

ちょっと、更新をありがとうが、これは私を助けていない..: –

+0

opps ..申し訳ありません、私は 'sandbox =" allow-scripts "'を削除するのを忘れていました。トン..:) –

関連する問題