JQuery获取浏览器窗口的可视区域高度和宽度,滚动条高度

alert($(window).height()); //浏览器时下窗口可视区域高度
alert($(document).height()); //浏览器时下窗口文档的高度
alert($(document.body).height());//浏览器时下窗口文档body的高度
alert($(document.body).outerHeight(true));//浏览器时下窗口文档body的总高度 包括border padding margin
alert($(window).width()); //浏览器时下窗口可视区域宽度
alert($(document).width());//浏览器时下窗口文档对于象宽度
alert($(document.body).width());//浏览器时下窗口文档body的高度
alert($(document.body).outerWidth(true));//浏览器时下窗口文档body的总宽度 包括border padding margin
alert($(document).scrollTop()); //获取滚动条到顶部的垂直高度
alert($(document).scrollLeft()); //获取滚动条到左边的垂直宽度

jquery.validate remote 和 自定义验证方法[转]

$(function(){

var validator = $(“#enterRegForm”).validate({
debug:false, //调试模式取消submit的默认提交功能
//errorClass: “error”,//默认为错误的样式类为:error
//validClass: “check”,//验证成功后的样式,默认字符串valid
focusInvalid: true,//表单提交时,焦点会指向第一个没有通过验证的域
//focusCleanup:true;//焦点指向错误域时,隐藏错误信息,不可与focusInvalid一起使用!
onkeyup: true,
errorElement: “div”,
submitHandler: function(form){ //表单提交句柄,为一回调函数,带一个参数:form
form.submit(); //提交表单
},

Continue reading

DIV弹窗后禁止页面滚动,IE和FF通用,基于prototype

DIV弹出之前,禁止页面滚动:
if(Prototype.Browser.IE){
$($$(‘html’)[0]).setStyle({overflow : ‘hidden’});
}else{
$($$(‘body’)[0]).setStyle({overflow : ‘hidden’});
}

DIV关闭之后,恢复页面滚动:
if(Prototype.Browser.IE){
$($$(‘html’)[0]).setStyle({overflow : ‘auto’});
}else{
$($$(‘body’)[0]).setStyle({overflow : ‘auto’});
}

IE6.0及以下版本PNG透明图片不透明解决方案


/*
Correctly handle PNG transparency in Win IE 5.5 & 6.
Copyright 2007 Ignia, LLC
Based in part on code from from http://homepage.ntlworld.com/bobosola.
Edit: Jena.want
Date: 2008.11.30
Web: www.AOBODO.com | www.IsHere.cn

Use in with DEFER keyword wrapped in conditional comments:

*/

(function fixPng() {
var arVersion = navigator.appVersion.split(“MSIE”)
var version = parseFloat(arVersion[1])

if ((version >= 5.5 && version < 7.0) && (document.body.filters)) {
for(var i=0; i
var img = document.images[i];
var imgName = img.src.toUpperCase();
if (imgName.indexOf(“.PNG”) > 0) {
var width = img.width;
var height = img.height;
var sizingMethod = (img.className.toLowerCase().indexOf(“scale”) >= 0)? “scale” : “image”;
img.runtimeStyle.filter = “progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’” + img.src.replace(‘%23′, ‘%2523′).replace(“‘”, “%27″) + “‘, sizingMethod=’” + sizingMethod + “‘)”;
img.src = “images/blank.gif”;
img.width = width;
img.height = height;
}
}
}
})();

这是打好包的文件,需要的朋友可以下载试试。msiepng

另外,如果PNG图片做背景的话,在IE6下也会出现不透明情况,以上脚本只解决了页面中的PNG图片透明,如果是CSS样式中使用了透明的PNG图片,则可以使用以下方案解决透明问题,利用了只有 IE6 才识别的下划线(_),来定义 IE6 浏览器中的滤镜:

#png {
background: url(绝对路径/images/bg.png) repeat;
_filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=’true’, sizingMethod=’scale’, src=”绝对路径/images/bg.png”);
_background:none;
}

JS判断客户端是否安装了MSN,Skype,QQ软件








测试环境:WIN SERVER 2008,IE6+,Firefox2.0+,Opera,Chorme

JS jscript做小数乘法运算出现浮点错误的解决办法

在Javascript里计算小数乘法,容易出现浮点错误,例如:



输出结果:

1.4300000000000001
1.32

解决问题的思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。解决办法如下:
1、 在算式中解决



2、添加到Number的原型方法里


使用方法:假如11*22.9,可以这样写tran(11,22.9),这样,问题就解决了。

正则(JS)re=new RegExp(“^\d*$”);与re=/^d*$/;之间区别?

以下代码结果为:FALSE,TRUE,TRUE , 结果中为什么第一个为FALSE呢?
<form name=form1>
字符串:<input name=”t1″ value=”123456″>
模式:/<input name=”t2″ value=”^d*$”>/
</form>
<script language=javascript>
function c1()
{
re=new RegExp(“^d*$”);
alert(re.test(“123456″));
}
function c2(form)
{
re=new RegExp(form.t2.value);
alert(re.test(form.t1.value));
}
function c3()
{
re=/^d*$/;
alert(re.test(“123456″));
}
c1();
c2(document.form1);
c3();
</script>
第一个应为 re=new RegExp(“^\d*$”);
在引号中需要转义
第一个表达式有双引号,双引号要加多一次转义的,第二个没有,这就是区别

Javascript跨域读取数据的新突破!

首先一点,这里的跨域不是类似 aaa.test.com 和 bbb.test.com的二级域名跨域,这种跨域的问题好像有很多人研究过了,而且也实现了。我这里说的跨域是像www.aaa.com和www.bbb.com这样的跨域。

再说一下我研究的这个跨域所要实现的功能吧,我有自己的域名www.aaa.com,我的域名下有一个图片列表页面,这个页面需要在其他域名,例如www.bbb.com的页面上显示,说到这里,可能有些朋友会说,提供一段代码,在www.bbb.com上iframe一下,不就结了吗,也牵扯不到跨域的问题,但是有一点,如果是ifame的方式在bbb.com上显示的话,这个iframe窗体的高度不是能够随着我的图片页面的高度变化的,也就是说,如果我提供的图片页面很长,那么就会在bbb.com的页面上显示滚动条,这样的话,页面会变得很难看,而这是我所希望的。

好了,说一下我的实现方式,我采用JS直接创建层的方式在bbb.com的show.html页面上直接创建我所需要的数据容器层,

<div id=”Data-Container”></div>

然后再把获取数据的链接get.asp附加到页面上<head>元素里面,利用OBJ.appendChild(obj),

<head>
<script src=”http://www.aaa.com/…/get.asp” id=”Data-Handler”></script>
</head>

在链接页面获取到数据

var content = ‘this is test content’; 以后,

在该页面的底部执行预先定义好的赋值函数

function SetData(){
document.getElementById(‘Data-Container’).innerHTML = content;
}

这样,原本在aaa.com域名下的数据就巧妙的显示到了bbb.com域名下的页面里,关键一点是,层Data-Container的高度会随着获取到数据的大小而自动调整大小,这样,show.html的高度也会自动调整了,就不会出现难看的上下滚动条了。

当然,这只是一个简单的工作原理,其中还有好多需要注意的地方,比如更复杂的回传参数,更新数据等,剩下的下次再写吧。

让弹出窗口(网页对话框)自适应图片大小

好长时间没写东西了,唉,瞎忙.
今天上午网站上需要一个弹出窗口,要求是图片多大, 窗口就多大.又是JS的问题,查了又查,终于有点眉目了,就是Image()对象可以解决这个问题.网上有很多例子,但都是弹出的窗口(虽然这篇题目也是写的窗口),而我要的是弹出”网页对话框”,只有一个关闭按钮,没有右键的.
下面这段代码是经过我修改过的,能达到上述的效果,现在贴出来供大家参考:



然后这样调用: