var a = document.createElement("A");
a.href = "#";
a.onclick = function(){alert("a")} //在DHTML里应该使用obj.event而不是attribute
document.body.appendChild(a);
a.href = "#";
a.onclick = function(){alert("a")} //在DHTML里应该使用obj.event而不是attribute
document.body.appendChild(a);
<!--
var a = document.createElement("A");
a.href = "#";
a.onclick = function(){alert("a"); return false;}
a.innerHTML = "meizz";
document.body.appendChild(a);
//-->
</SCRIPT>我测试了一下,一点问题都没有呀(IE FF)
---------------------------
Microsoft Internet Explorer
---------------------------
<TBODY><TR><TD align=middle><A onclick="javascript:alert('hehe')" href="javascript:void(0)">主目录</A></TD><TD align=middle><A onclick="javascript:alert('hehe')" href="javascript:void(0)">分类1</A></TD></TR><TR id=level1><TD align=middle colspan="2"></TD></TR></TBODY>
---------------------------
确定
---------------------------firefox提示的内容:---------------------------
Microsoft Internet Explorer
---------------------------
<TBODY><TR><TD align=middle><A onclick="javascript:alert('hehe')" href="javascript:void(0)">主目录</A></TD><TD align=middle><A onclick="javascript:alert('hehe')" href="javascript:void(0)">分类1</A></TD></TR><TR id=level1><TD align=middle colspan="2"></TD></TR></TBODY>
---------------------------
确定
---------------------------就是没反应!!!
/************************************************************************
* Author:zx
* Time:2006.1.22 22:17
* File name:menus.js
* Version:1.0
************************************************************************/function ajaxMenu( )
{
/*
* 功能:
* 建立ajaxMenu对象
* 保留HTML ID:
* 以level开头后跟数字的ID,如:level0
*/
this.ajax = ajax;
this.ajax();
this.open = mOpen;
this.ajaxEnd();
base = 0;
idPrefix = "level";
states = new Array( "未初始化","读取中","已读取","交互中","完成" );
space = navigator.appName.toUpperCase()=="NETSCAPE" ? 1 : 0;
}function mOpen( id , url , mode , action )
{
/*
* 继承:
* ajax.aOpen
* 参数:
* 当前记录的id
*/
base = id;
show = getLastedNode( document.getElementById( idPrefix+base ) );
aOpen( url , mode , action );
}function getLastedNode( elem )
{
/*
* 功能:
* 处理服务器返回的信息
* 类型:
* 内部方法
* 参数:
* element对象
*/
var newElement = elem;
try
{
if( newElement.childNodes[space].nodeType == 3 )
{
return( newElement );
}
newElement = getLastedNode( newElement.childNodes[space] );
}
catch(e)
{
return( false );
}
return( newElement ? newElement : elem );
}function pross()
{
/*
* 功能:
* 处理服务器返回的信息
* 类型:
* 内部方法
* 前提:
* 不可单独调用,需继承本程序内置的ajax对象.childNodes[space]
*/
with( request )
{
if( readyState==4 && status==200 )
{
var data = responseXML;
var objects = data.getElementsByTagName( "mains" )[0].childNodes;
var len = objects.length;
var attribute = new Array();
var tr = create( "tr" , attribute , "" );
var tbody = create( "tbody" , attribute , tr );
attribute[0] = "width=100%";
attribute[1] = "border=0";
attribute[2] = "cellspacing=0";
attribute[3] = "cellpadding=0";
var tbs = create( "table" , attribute , tbody ); for( var i=space ; i<len ; i += (1+space) )
{
//attribute[1] = "onclick=javascript:alert('hehe');"; list("+(base+1)+","+objects[i].getAttribute("id")+")
var a = createALink( objects[i].getAttribute("value") , "javascript:void(0)" , "javascript:alert('hehe')" );
attribute = new Array();
attribute[0] = "align=center";
var td = create( "td" , attribute , a );
tr.appendChild( td );
}
try
{
if( document.getElementById( idPrefix+(base+1) ) )
{
return;
}
else
{
attribute = new Array();
attribute[0] = "align=center";
attribute[1] = "colspan="+i;
var td = create( "td" , attribute , "" );
attribute = new Array();
attribute[0] = "id="+idPrefix+(++base);
var tr = create( "tr" , attribute , td );
tbody.appendChild( tr );
}
}
catch(e)
{
alert( "程序出错!" );
}
alert( tbs.innerHTML );
show.innerHTML="";
show.appendChild( tbs );
}
else
{
show.innerHTML = states[ readyState ];
}
}
}function createALink( name , href , c )
{
var a = document.createElement( "a" );
a.href = href;
a.onclick = c;
a.innerHTML = name;
return( a );
}function create( name , attribute , value )
{
/*
* 功能:
* 建立一个Element对象
* 类型:
* 内部方法
* 参数:
* name对象名称
* attribute存放对象属性数组,数组格式:attribute[Num]="属性名=属性值";
* value对像值或子节点,空则表示无值或子节点
*/
var element = document.createElement( name );
var len = attribute.length;
for( var i=0 ; i<len ; i++ )
{
var regExp = new RegExp( "(.*)=(.*)" , "ig" );
var array = regExp.exec( attribute[i] );
element.setAttribute( array[1] , array[2] );
}
if( !value )
{
return( element );
}
else
{
element.appendChild( value );
}
return( element );
}
/************************************************************************
* Author:zx
* Time:2006.1.22 22:17
* File name:menus.js
* Version:1.0
************************************************************************/function ajaxMenu( )
{
/*
* 功能:
* 建立ajaxMenu对象
* 保留HTML ID:
* 以level开头后跟数字的ID,如:level0
*/
this.ajax = ajax;
this.ajax();
this.open = mOpen;
this.ajaxEnd();
base = 0;
idPrefix = "level";
states = new Array( "未初始化","读取中","已读取","交互中","完成" );
space = navigator.appName.toUpperCase()=="NETSCAPE" ? 1 : 0;
}function mOpen( id , url , mode , action )
{
/*
* 继承:
* ajax.aOpen
* 参数:
* 当前记录的id
*/
base = id;
show = getLastedNode( document.getElementById( idPrefix+base ) );
aOpen( url , mode , action );
}function getLastedNode( elem )
{
/*
* 功能:
* 处理服务器返回的信息
* 类型:
* 内部方法
* 参数:
* element对象
*/
var newElement = elem;
try
{
if( newElement.childNodes[space].nodeType == 3 )
{
return( newElement );
}
newElement = getLastedNode( newElement.childNodes[space] );
}
catch(e)
{
return( false );
}
return( newElement ? newElement : elem );
}function pross()
{
/*
* 功能:
* 处理服务器返回的信息
* 类型:
* 内部方法
* 前提:
* 不可单独调用,需继承本程序内置的ajax对象.childNodes[space]
*/
with( request )
{
if( readyState==4 && status==200 )
{
var data = responseXML;
var objects = data.getElementsByTagName( "mains" )[0].childNodes;
var len = objects.length;
var attribute = new Array();
var tr = create( "tr" , attribute , "" );
var tbody = create( "tbody" , attribute , tr );
attribute[0] = "width=100%";
attribute[1] = "border=0";
attribute[2] = "cellspacing=0";
attribute[3] = "cellpadding=0";
var tbs = create( "table" , attribute , tbody ); for( var i=space ; i<len ; i += (1+space) )
{
attribute = new Array();
attribute[0] = "onclick=javascript:alert('hehe');"; //list("+(base+1)+","+objects[i].getAttribute("id")+")
attribute[1] = "href=javascript:void(0)";
var a = create( "a" , attribute , objects[i].getAttribute("value") );
attribute = new Array();
attribute[0] = "align=center";
var td = create( "td" , attribute , a );
alert( td.innerHTML );
tr.appendChild( td );
}
try
{
if( document.getElementById( idPrefix+(base+1) ) )
{
return;
}
else
{
attribute = new Array();
attribute[0] = "align=center";
attribute[1] = "colspan="+i;
var td = create( "td" , attribute , "" );
attribute = new Array();
attribute[0] = "id="+idPrefix+(++base);
var tr = create( "tr" , attribute , td );
tbody.appendChild( tr );
}
}
catch(e)
{
alert( "程序出错!" );
}
show.innerHTML="";
show.appendChild( tbs );
}
else
{
show.innerHTML = states[ readyState ];
}
}
}function create( name , attribute , value )
{
/*
* 功能:
* 建立一个Element对象
* 类型:
* 内部方法
* 参数:
* name对象名称
* attribute存放对象属性数组,数组格式:attribute[Num]="属性名=属性值";
* value对像值或子节点,空则表示无值或子节点
*/
var element = document.createElement( name );
var len = attribute.length;
for( var i=0 ; i<len ; i++ )
{
var regExp = new RegExp( "(.*)=(.*)" , "ig" );
var array = regExp.exec( attribute[i] );
element.setAttribute( array[1] , array[2] );
}
if( !value )
{
return( element );
}
if( !value.nodeType )
{
element.innerHTML = value;
}
else if( value.nodeType== 3 )
{
element.appendChild( document.createTextNode( value ) );
}
else
{
element.appendChild( value );
}
return( element );
}