我有一个绑定到 iframe 加载事件的事件处理程序函数,我想知道在 iframe 中检索的内容是 HTML 还是 JSON。有没有办法实现这一目标?
经过一些研究,我发现了解在 iframe 中加载哪种内容的最可行方法是通过文档 DOM 元素的 contentType/mimeType 属性。我们可以通过不同的方式获得此属性:
在负载处理程序函数内部(方式 1):
var iframedocument = $(this).contents().get(0);
var contentType = iframedocument.contentType || iframedocument.mimeType;
在负载处理程序函数内部(方式 2):
var iframedocument = this.contentDocument;
var contentType = iframedocument.contentType || iframedocument.mimeType;
负载处理程序功能内部或外部(方式 3):
var iframe = document.getElementById('iframe_id');
var iframedocument = iframe.contentDocument;
var contentType = iframedocument.contentType || iframedocument.mimeType;
如果contentType == 'application/json'
则加载的文档是 JSON。如果contentType == 'text/html'
则文档为 HTML。
附加说明:这个想法来自Geoff Wartz对这个问题的回答:如何使用jquery侦听返回的json对象 解决方案基于对另一个问题的提议答案:如何从iframe获取内容类型?最后,我们必须使用contentType
来兼容Mozilla Firefox,mimeType
用于IE。