2016-04-26 6 views
0

の作業。私は自分の中にiFramedしているウェブサイトから2つのスクリーンショットを添付しました。 iFrameがポップアップし、フレームの60%を占めるメニューが開きます。私はページを読み込んで自動的に閉じるために、メニューにクラスを追加したいと思います。私は正しいJSを持っていると思いますが、それを機能させることはできません。クラスはまったく追加しません。調整HTML内部のiFrame - Javascriptのないしかし、私はiFrameの内部で正しく機能するためにはJavaScriptを得ることができない、私は約45分間のStackOverflowでJavaScript/iFrameの記事を探していると私はいくつかの素晴らしい資源を収集した

Menu opened Menu closed これは、 "拡大" クラスにdiv要素のIDを変更するために、私のiFrameとJavaScriptです。私はそれがばかげているのは分かっていますが、閉じたメニューのクラス名は拡張されています。どんな助けもありがとう!ありがとう。 HTMLを掲載する代わりに

<iframe src="http://dayzdb.com/map#2.065.045" style="width:500px; height:300px;" id="dayzdb"></iframe> 

     <script>$("#dayzdb").contents().find("#mapContainer").addClass("expanded")</script> 

(それは長いですので)私はあなたがそれを見るためにナビゲーションバー上の要素を調べることができ、ウェブサイトのリンクを掲載しています。

http://dayzdb.com/map

+0

私はあなたが '.contents(必要はないと思う)' 'あなたは.findをやっている場合は()'の直後、私は '.find()は'十分だと思います。また、iFrameに含まれるHTMLの一部を投稿することはできますか?なぜそれが正しく選択されないのかを理解するのに役立つかもしれません。 –

+0

同じドメインの 'iframe'はありますか?そうでない場合は、[同じ発信元ポリシー](https://en.wikipedia.org/wiki/Same-origin_policy)の対象となります。 –

+0

大きな質問ですが、私もHTMLを添付します!そして、私はまた、コンテンツを削除しようとし、それが動作するかどうかを確認します! –

答えて

0

あなたのページとあなたのiframe内に同じドメインを使用していますか? cross-domainポリシーを忘れないでください。それ以外の場合は機能しません。両方のサイトを管理できる場合は、postMessageメソッドを使用して、異なるドメイン間でデータを転送できます。非常に基本的な例:

// framed.htm: 
window.onmessage = function(event) { 
    event.source.postMessage(document.body.innerHTML, event.origin); 
}; 

// Main page: 
window.onmessage = function(event) { 
    alert(event.data); 
}; 

// Trigger: 
// <iframe id="myframe" src="framed.htm"></iframe> 
document.getElementById('myframe').contentWindow.postMessage('','*'); 
関連する問題