MutationObserver不适用于iframe src更改检测的跨域

时间:2016-05-05 13:20:09

标签: javascript html iframe cross-domain

我正在使用iframe编写移动应用,以显示我们的购物网站,iframe部分就是这样;

<div id="loadImg"><div></div><img src="images/loading2.gif"/></div>
<iframe id="frame-content" src="www.siteadress.com"/>

具有上述结构我希望在加载页面时向客户显示预加载器图像,然后在iframe内容完全加载后隐藏加载器(因为连接速度问题)

我正在尝试为iframe创建一个预加载器图像,我需要捕获click事件(src已更改 - 但我不能使用onload(),因为它只在内容完全加载时才会触发)iframe点击其中一个链接。

为了实现它,我正在尝试使用MutationObserver方法;

var mut_elem = document.querySelector('#frame-content');

//MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if (mutation.attributeName == 'src') document.getElementById('loadImg').style.display='block';
  });
});
observer.observe(mut_elem, {attributes: true,attributeFilter:['src']});

虽然上面的代码适用于同域,但它不适用于跨域。 所以我想了解一下;

  1. 可以在跨域网站上使用MutationObserver技术吗? (如果是,怎么样?)
  2. 如果使用MutationObserver无法跨域,是否有办法使其成为可能(在iframe上显示加载图像[跨域]并在加载iframe内容时在主页面上隐藏此图像)?
  3. 谢谢,现在......

0 个答案:

没有答案