我有这个javascript来调整iframe:
$(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中,它在这里遇到了麻烦:
if ($.browser.safari || $.browser.opera) {
我有什么理由得到这个错误吗?我正在使用最新的JQuery?
由于
答案 0 :(得分:13)
您可能正在使用jQuery 1.9或更高版本,在这种情况下{1.3}自从1.3开始被弃用后才被正式删除。
您可以使用$.browser
对其进行修补,但最好采用特定于功能的方法,而不是采用特定于浏览器的方法。 jQuery migrate对此非常有用。
答案 1 :(得分:3)
jquery建议不要使用$.browser
...使用$.support
代替..
如果$.browser.safari
(或Opera或任何您尝试访问的内容)不存在,则会抛出错误。检查是否undefined
答案 2 :(得分:2)
今天我注意到这个问题,客户在没有告诉我的情况下升级了。
我发布的快速修复(不使用Modernizr,这可能是更好的方法)
在scrollTo.js文件中,转到第85行并将其设为:
var is_safari = navigator.userAgent.indexOf("Safari") > -1;
return is_safari || doc.compatMode == 'BackCompat' ?
答案 3 :(得分:0)
您可以尝试检查userAgent字符串:
Chrome在userAgent字符串中包含“Chrome”和“Safari”。苹果浏览器 只有'Safari'。