我有一个绑定到 iframe 的加载事件的事件处理函数,我想知道在 iframe 中检索到的内容是 HTML 还是 JSON。有没有办法做到这一点?
问问题
6226 次
1 回答
8
经过一番研究,我发现知道 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。
于 2012-09-20T19:56:38.733 回答