liferay的JS代码基础解析

本文解析了Liferay 5.1版本中用于实现多浏览器兼容性的JS代码。该代码通过判断不同的浏览器类型来加载相应的CSS文件,确保在各种浏览器下的一致显示效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段代码是Liferay 5.1版本的代码,主要功能是实现浏览器版本的判断,以根据浏览器的不同调用不同css,实现多浏览器兼容。本文秉着学习JS的态度逐步的对Liferay的一些有用的js代码进行解析,JE上面这方面的高人很多,说得不对的地方非常期望可以得到各位高人的指正。另外也希望对一些和我一样的新人有所帮助。
Liferay.Browser = {
init: function() {
var instance = this;
var version = instance.version();
var exactVersion = instance.version(true);
instance._browserVars = {
agent: '',
is_firefox: false,
...节约篇幅略去部分代码
is_mozilla: false,
};
instance._browserVars.agent = instance.browser().toLowerCase();
...
jQuery.extend(instance, instance._browserVars);
},
browser: function() {
var instance = this;

return jQuery.browser.browser;
},
compat: function() {
var instance = this;
for (var i in instance._browserVars) {
if (!window[i]) {
window[i] = instance._browserVars[i];
}
}
},
version: function(exact) {
var instance = this;
if (!exact) {
return jQuery.browser.version.major;
}
else {
return jQuery.browser.version.string;
}
},
_browserVars: {}
};
jQuery(
function() {
Liferay.Browser.init();
}
);


这一段代码主要是对jQuery的一个j2browse的插件进行了包装,使用自己的变量命名需要来命名。对于初学者来说这样的写法可能比较难以理解。首先是
Liferay.Browser={...};

可能会有疑惑,定义一个变量不是var开头吗?从JE上面一些锁定的老帖http://www.iteye.com/topic/19506,大家都知道javascript是可以隐式声名变量的。但要注意,隐式声名变量总是被创建为全局变量。这种写法的意思就是将Liferay.Browser这个对象声明为全局变量。
再看
Liferay.Browser={...};

{}是js里面对象直接量的写法,在js中,对象属性也可以是函数,而不仅仅是数字字符串。这样的写法我所知道的带来的好处是:js中对象属性可以通过.来调用,而通过.来调用从外观上是很符合其它语言的习惯的,比较易读。在{}内定义了函数后,就可以通过Liferay.Browser.init()这样的方式来完成调用了。也就是接下来的

jQuery(
function() {
Liferay.Browser.init();
}
);

这一段jQuery();实际上就是执行了一个函数,这个jQuery()的函数的参数也是一个function,可以理解为jQuery(var);同alert("error");对比就非常容易理解了。很多新人对于jquery的写法很困惑,跟平常用的一些简单的验证脚本的js写法都不一样,其实最容易混淆和难以接受的概念就是函数function也可以作为一个变量一个参数来传递。

而其实上面的整个代码,你可以这样来理解:

a = {1,2,3};
alert(a.1);


还有一点,通常看到的function的形式都是 function a(){}的形式,这里的function()函数名都没有。这是js的匿名函数,js允许这样的匿名函数。通常这种匿名函数都用在被作为参数传递的场合,在jQuery的应用中非常常见。

一点小小经验心得,权当学习记录,贻笑大方了,肯盼赐教。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值