未捕获的TypeError:无法读取未定义的属性'safari' [英] Uncaught TypeError: Cannot read property 'safari' of undefined
本文介绍了未捕获的TypeError:无法读取未定义的属性'safari'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有这个jjavascript来调整iframe的大小:
I have this jjavascript to resize iframes:
$(function () {
var iFrames = $('iframe');
function iResize() {
for (var i = 0, j = iFrames.length; i < j; i++) {
iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';
}
}
if ($.browser.safari || $.browser.opera) {
iFrames.load(function () {
setTimeout(iResize, 0);
});
for (var i = 0, j = iFrames.length; i < j; i++) {
var iSource = iFrames[i].src;
iFrames[i].src = '';
iFrames[i].src = iSource;
}
} else {
iFrames.load(function () {
this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
});
}
});
在Chrome中,它有问题:
In chrome, it has trouble here:
if ($.browser.safari || $.browser.opera) {
我有什么理由得到这个错误吗?我使用的是最新的JQuery?
Is there any reason why I get this error? I am using the latest JQuery?
谢谢
推荐答案
你是可能使用jQuery 1.9或更高版本,在这种情况下 $。browser
自1.3以来被弃用后被正式删除。
You are probably using jQuery 1.9 or above, in which case $.browser
was officially removed after being deprecated since 1.3.
您可以使用 jQuery migrate 将对其进行修补,但最好采用特定于功能的方法而不是特定于浏览器的方法。 Modernizr 非常适合这一点。
You can use jQuery migrate which will patch it, but it's better to move to a feature specific approach instead of browser specific approach. Modernizr is great for this.
这篇关于未捕获的TypeError:无法读取未定义的属性'safari'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文