小弟又来寻找帮助了=。=

coolgyy 2012-09-07 03:38:35
大大帮忙解释下这段代码,主要是return里面的内容,最好具体点
function getWinSize()
{
//获取IE的<html>
var de = document.documentElement;
//返回了一个json对象 .width可以获取浏览器的宽度, .heigth可以获取浏览器的高度
return
{
'width':(window.innerWidth||(de&&de.clientWidth)||window.body.clientWidth),
'height':(window.innerHeight||(de&&de.clientHeight)||window.body.clientHeigth)
};
}
我不理解的地方,为什么要用||连那么多个
...全文
159 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
coolgyy 2012-09-07
  • 打赏
  • 举报
回复
终于解决了把分数给最热心的那个好人啦^_^
coolgyy 2012-09-07
  • 打赏
  • 举报
回复
找到问题所在了。
return 后面那个大括号不能另起一行
return {
'width':(window.innerWidth||(de&&de.clientWidth)||window.body.clientWidth),
'height':(window.innerHeight||(de&&de.clientHeight)||window.body.clientHeigth)
};

或者想要另起一行的话要加个 + 号如
return +
{
'width':(window.innerWidth||(de&&de.clientWidth)||window.body.clientWidth),
'height':(window.innerHeight||(de&&de.clientHeight)||window.body.clientHeigth)
};
泡泡鱼_ 2012-09-07
  • 打赏
  • 举报
回复
你把调用getWinSize()返回值后使用的代码贴出来瞅瞅
coolgyy 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
改成这样:
return
{
'width':window.innerWidth||(de?de.clientWidth:null)||window.body.clientWidth,
'height':window.innerHeight||(de?de.clientHeight:null)||window.body.clientHeigth
};
[/Quote]
不好意思···还是报错。。。
未知数 2012-09-07
  • 打赏
  • 举报
回复
改成这样:
return
{
'width':window.innerWidth||(de?de.clientWidth:null)||window.body.clientWidth,
'height':window.innerHeight||(de?de.clientHeight:null)||window.body.clientHeigth
};

coolgyy 2012-09-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
返回的是一个json对象。那后面的||主要是为了兼容浏览器,因为取值方式可能因为浏览器的不同而变得不同

语法错误?是不是因为json对象的格式问题?

你将'width'变更为:"width"试试??
[/Quote]

没用啊,还是一样报错
泡泡鱼_ 2012-09-07
  • 打赏
  • 举报
回复
返回的是一个json对象。那后面的||主要是为了兼容浏览器,因为取值方式可能因为浏览器的不同而变得不同

语法错误?是不是因为json对象的格式问题?

你将'width'变更为:"width"试试??
coolgyy 2012-09-07
  • 打赏
  • 举报
回复
都是大才啊·····还有个问题就是
dreamweaver CS5提示一个错误
'width':(window.innerWidth||(de&&de.clientWidth)||window.body.clientWidth),
说这句包含一个语法错误。。。我怎么看都跟视频里一样啊··怎么会提示这个错误??
各位大大把上面那段代码复制到DWCS5中看看会不会提示这个错误?
未知数 2012-09-07
  • 打赏
  • 举报
回复
//返回了一个json对象 .width可以获取浏览器的宽度, .heigth可以获取浏览器的高度
解释得很清楚了啊,返回值是一个对象,有width,height两个属性

||的目的是兼容,有些浏览器可能不支持某种写法,那么那个写法获取的值就是undefined,或一下的话意思就是取有定义的那个值
yibey 2012-09-07
  • 打赏
  • 举报
回复
兼容不同的浏览器被,不同的浏览器获得宽度的属性是不一样的,所以只要第一个出现有值的就返回就正确的值了

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧