未捕获的TypeError:无法读取未定义的属性'safari' [英] Uncaught TypeError: Cannot read property 'safari' of undefined

查看:151
本文介绍了未捕获的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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆