我知道可以使用jQuery检测load事件:
$('#iframeid').load(function(){
alert('frame has (re)loaded');
});
是否可以检测何时开始在不同来源上加载而不是完成加载?
答案 0 :(得分:0)
您可以使用MutationObserver https://msdn.microsoft.com/en-us/library/dn254985(v=vs.85).aspx。但只有较新版本的浏览器才支持此功能,您可以在此处找到完整列表http://caniuse.com/#feat=mutationobserver
用法:
<iframe id="iframe"></iframe>
var iframe = $("body").find("#iframe");
var observerConfig = {
attributes: true,
childList: true,
characterData: true
};
var iframeObserver = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.attributeName == "src"){
// your code
}
});
});
iframeObserver.observe(iframe[0], observerConfig);
// later, you can stop observing
//observer.disconnect();
setTimeout(function () {
iframe.attr("src", "test");
}, 2000);
这是完整的小提琴 https://jsfiddle.net/jrmbzdp9/2/