2017-04-04 7 views
0

Xをクリックすると、私のiFrameが格納されているdivを隠したいと思います。私はiFrameをjQueryと共に挿入しました。私はjsFiddleを作成しました。今すぐXをクリックしたときにコンソールに「クリック」されるだけであれば、私は満足しています。jQueryとのインタラクト動的にiFrameをロード

ここに私のiFrameを含んでいるdivを挿入し、隠そうとする私のjQueryがあります。

$(document).ready(function(){ 
    if (document.location.pathname === '/account'){ 
    console.log("loaded up"); 
    $('body').append($.parseHTML(frame)); 
} 

$('#fresh-credit-button').on('click', function(){ 
    console.log("clicked"); 
}); 

}); 

私はShopifyスルーappProxyを使用していますので、私は、クロスドメインの問題を持っていません。

+0

あなたはここで共通の問題を抱えていますが、別のドメインを持つiframe内の要素にアクセスすることはできません。 – Roljhon

+0

私は実際にはクロスドメインの問題を回避するプロキシを使用しています..良い考えだ! – ToddT

+0

これは素晴らしいことです。要素iframe.contentWindow.documentまたはiframe.contentDocumentにアクセスできます。 jsfiddleとのドメイン間の問題のためスニペットを作成できません – Roljhon

答えて

1

すでにドメイン間の問題を修正している場合は、このようにすることができます。

var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; 

その後

var closeBtn = innerDoc.getElementById('fresh-credit-button'); 

closeBtn.addEventListener('click',function(){ 
    //close div here 
    //same idea when accessing the div element from the iframe 
}); 
のonclickイベントを添付:それは以下のようにそこにやるから次に

var iframe = document.querySelector('iframe[src="https://test-4658.myshopify.com/apps/proxy/credit"]') 

は、IFRAMEへの参照を取得します。

これはネイティブJSで書かれています。必要に応じてjQuery経由で実行できます。スニペットを作成できなかったので、あなたが最後から修正する方法を見つけるのを助けてくれることを願っています。

0

うーん...あなたはこのようにjqueryのからウェブサイトのストリーミングを試みることができる: https://jsfiddle.net/uxc930xr/15/

$('#message').load('https://test-4658.myshopify.com/apps/proxy/credit'); 

は、残念ながら、これが原因、それは他のソースからのjQueryのhtmlを遮断するjsfiddle上で実行することはできません

関連する問題