与jQuery动态加载的iFrame交互

时间:2017-04-04 17:02:07

标签: javascript jquery html css iframe

点击X.我想隐藏包含我的iFrame的div。我用jQuery插入了iFrame。我用我的例子创建了一个jsFiddle。现在,如果我可以点击"点击"单击X时进入控制台我会很高兴。

这是我的jQuery插入并试图隐藏包含我的iFrame的div。

$(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。

2 个答案:

答案 0 :(得分:1)

如果您已经修复了跨域问题,可以这样做。

获取对该iframe的引用:

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

然后从那里开始如下:

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

然后附加onclick事件

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

closeBtn.addEventListener('click',function(){
    //close div here
    //same idea when accessing the div element from the iframe
});
  

这只是用本机JS编写的,如果你愿意,可以通过jQuery来实现。我希望它可以帮助您找到一种方法来修复,因为我无法创建一个片段。

答案 1 :(得分:0)

嗯......您可以尝试从jquery流式传输网站,如下所示: https://jsfiddle.net/uxc930xr/15/

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

不幸的是,由于它阻止来自其他来源的jquery html,因此无法在jsfiddle上运行