JS对话框


alert("你好");

if(confirm(你现在快乐吗?)){
	alert("真为你高兴");
}
else
{
	alert("没关系,都会好起来的,对自己好一些");
}

var m=window.prompt("你今年几岁了啊");
alert("你今年"+m+"岁了");

JS单双色表格

//id,颜色a,颜色b
function DColorTable(tid, colora, colorb)
{
	var ctrl = document.getElementById(tid);
	if(ctrl==null)return;
	
	var trs = ctrl.getElementsByTagName("tr");
	
	for ( var i = 0; i < trs.length; i++)
	{
		trs[i].style.backgroundColor = (trs[i].sectionRowIndex % 2 == 0) ? colora : colorb;
	}
}

DColorTable("dcolorTable","#FFFFFF","#c6e1fd");

JQuery获取页面宽度及高度

//返回当前页面高度
function pageHeight(){
	if($.browser.msie){
		return document.compatMode == "CSS1Compat"? document.documentElement.clientHeight :
		document.body.clientHeight;
	}else{
		return self.innerHeight;
	}
};



//返回当前页面宽度
function pageWidth(){
	if($.browser.msie){
		return document.compatMode == "CSS1Compat"? document.documentElement.clientWidth :
		document.body.clientWidth;
	}else{
		return self.innerWidth;
	}
}; 

动态创建div

function creatediv(objname)
{
    var objdiv = document.createElement("div");
    objdiv.id =objname;
    objdiv.innerHTML=objname;
    objdiv.style.top = 100;
    objdiv.style.left = 100;
    objdiv.style.background = '#FFFF00';
    objdiv.style.visibility = 'visible';
    objdiv.style.width = 500;
    objdiv.style.height = 500;
    
    document.body.appendChild(objdiv);
    document.getElementById(objname).onmouseover = function()
    {
        alert(this.id);
    };
}

上面的代码是没什么问题的,但有一种情况,就是FF提交表单时,
这样创建控件,会受安全限制,不一定好用的。

div被activex控件遮住的处理方法

不知什么时候,自己成了写JS的人了

说实话,用过很多种编程语言,但至今发现,最佩服的莫过于JS程序员,调试那叫个烦人啊,写出JQuery的那些人,要么有更好的调试工具,要么就是真正的牛人吧。
JS的调试工具,IE下,直接用IE的调试工具(IE7及以上)或者是Companion.JS
在FF下,自然是FireBug老兄了

现在,主界面上已经集成了JQuery,JQueryUI,JX,SuperFish
还记得当初把JX放到JQuery中,以及修改JX.Tree增加叶子节点的ID等属性,加起来痛苦了有一周左右,终于把JX删的删,改的改,满足了需求。

这两天呢,又遇到了SuperFish的菜单,被一个第三方ActiveX控件遮住的问题,让大家痛苦了许久。
网上找呢,也全是关于flash的东西,只要设个参数就好了。

没办法,只好去修改SuperFish的代码咯。
具体的思路是:

在菜单弹出后,弹出菜单的下方,生成一个同样大小的iframe,

var mydoc=window.frames["FrameId"].document;
var objiframe = mydoc.createElement("iframe");
objiframe.id ="IFuLeU";
objiframe.style.visibility = 'hidden';
objiframe.style.top = 0;
objiframe.style.left = 0;
objiframe.style.width = 0;
objiframe.style.height = 0;
mydoc.body.appendChild(objiframe);

objiframe.style.position = "absolute";
objiframe.style.top = 0;
objiframe.style.left = this.offset().left-1;
objiframe.style.width = this.width();
objiframe.style.height = this.height()-2;
objiframe.style.visibility = 'visible';

在菜单隐藏时,将iframe销毁,

var mydoc=window.frames["FrameId"].document;
var objiframe = mydoc.getElementById("IFuLeU");
mydoc.body.removeChild(objiframe);

但这样呢,还会有个小问题
就是在菜单弹出后,会有个较为明显的先被ActiveX遮住,然后菜单又将Activex遮住的过程。