为什么这个js代码在ie8.0下不能运行,应该怎么修正,谢谢了

ye 2010-02-21 03:29:50
点击单个增加 ,全部增加 这些按钮,在IE8下不能运行,IE7,IE6正常,要怎么改才都能正常呢


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>选择接收用户</title>
<style type="text/css">
<!--
.STYLE1 {color: #FF0000}
-->
</style>
</head>


<script language="javascript">
function Menu(theform,menuid) {
/*------------------------------*\
* 1.变量定义                       *
/*------------------------------*/     
//定义菜单级别MenuClass,菜单长度数组MenuLenArr,
//菜单名称数组MenuArr,下级菜单数组SubMenuArr,菜单ID数组MenuIdArr
var MenuClass,MenuLenArr,MenuArr,SubMenuArr,MenuIdArr
//定义分隔符:splitchar1,splitchar2
var splitchar1,splitchar2
//定义临时数组,子数组,数组长度,
var arr,subarr,arrlen
/*------------------------------*\
* 2.变量赋值                       *
/*------------------------------*/
MenuArr=new Array()
MenuLenArr=new Array()
SubMenuArr=new Array()
MenuIdArr=new Array()
MenuArr[1]="直属校|||学区"
MenuArr[2]="直属校###[直属校]进修学校|||直属校###[直属校]第一实小|||直属校###[直属校]第二实小|||学区###[学区]大同学区|||学区###[学区]洪塘学区|||"
MenuIdArr[1]="zhou"
MenuIdArr[2]="xx"
MenuClass=2 //4级菜单
splitchar1="|||";
splitchar2="###";
/*------------------------------*\
* 3.生成数组                       *
/*------------------------------*/
for(iii=1;iii<=MenuClass;iii++)
{
arr=MenuArr[iii].split(splitchar1);
len=arr.length;
subarr=new Array()
for (i=0;i<len;i++)
{
subarr[i]=arr[i].split(splitchar2);
}
len=subarr.length;
SubMenuArr[iii]=subarr
MenuLenArr[iii]=len
}
//============更改下级菜单======================
var self,submenu,thislen,thisarr
//self本级菜单
//submenu子菜单
//theform:所在表单对象[type:object]
//menuid:本级菜单级别ID,如1级菜单则为1
self=eval("document."+theform.name+"."+MenuIdArr[menuid])
submenu=eval("document."+theform.name+"."+MenuIdArr[menuid+1])
thislen=MenuLenArr[menuid+1]
thisarr=SubMenuArr[menuid+1]
submenu.length=0
submenu.options.add(new Option( "--请选择--",""));
for (i=0;i<thislen;i++)
{
if (thisarr[i][0] == self.value)
{
submenu.options.add(new Option(thisarr[i][1], thisarr[i][1]));
}
}
submenu.options[0].selected=true
//============更改下级以下菜单==============
var kkk
for(kkk=menuid+2;kkk<=MenuClass;kkk++)
{
submenu=eval("document."+theform.name+"."+MenuIdArr[kkk])
submenu.length=0
submenu.options.add(new Option( "--请选择--",""));
submenu.options[0].selected=true
}
}
</script>



<script Language="JavaScript">

function init(m){//判断m项是否已存在于对象yy中
for (j=0;j<=document.all("yy").options.length-1;j++)
if (document.all("xx").options[m].value==document.all("yy").options[j].value)break;
if (j>document.all("yy").options.length-1){
document.all('addone_btn').disabled = false;
return true;
}
else{
document.all('addone_btn').disabled = true;
return false;
}
}

function addone(n){//增加一项到对象yy中
if(n!=-1&&n!=0){
if (init(n)){
document.all("yy").add(Option(document.all("xx").options[n].innerText,document.all("xx").options[n].value));
document.all("addone_btn").disabled = true;
document.all("deleteall_btn").disabled = false;
}
}
event.returnValue=false;
}

function addall(){//增加全部到对象yy中
n = document.all("xx").options.length;
if (n!=0);{
for(i=1;i<=n-1;i++){
if (init(i))
document.all("yy").add(Option(document.all("xx").options[i].innerText,document.all("xx").options[i].value));
}
document.all("addone_btn").disabled = true;
document.all("addall_btn").disabled = false;
document.all("deleteall_btn").disabled = false;
}
event.returnValue=false;
}

function deleteone(n){//从对象yy中删除一项
if(n!=-1){
document.all("yy").remove(n);
document.all("deleteone_btn").disabled = true;
if (document.all("yy").options.length==0) document.all("deleteall_btn").disabled = true;
if (document.all("xx").selectedIndex!=-1) init(document.all("xx").selectedIndex);
}
event.returnValue = false;
}

function deleteall(){//从yy对象中删除所有
n = document.all("yy").options.length;
if (n!=0);{
for(i=n-1;i>=0;i--){
document.all("yy").remove(i);
}
document.all("deleteone_btn").disabled = true;
document.all("deleteall_btn").disabled = true;
// document.all("addall_btn").disabled = false;
if (document.all("xx").selectedIndex!=-1) init(document.all("xx").selectedIndex);
}
event.returnValue=false;
}

function CancelClick()
{
self.close();
}

</Script>
<script language="javascript">
function clickit(){
var allvalue=""
for (i=0;i<=document.all("yy").options.length-1;i++)
allvalue==''?allvalue = allvalue + document.all("yy").options[i].value:allvalue = allvalue + ',' + document.all("yy").options[i].value;
opener.document.MyForm.acceptuser0.value=allvalue;
self.close();
}

</SCRIPT>
<script language=javascript>


function getSelect()
{
var obj = document.getElementById("yy");
var sSelect = opener.document.MyForm.acceptuser0.value;
var sList = sSelect.split(",");
for(var i=0;i <sList.length-1;i++)
{
obj.add(new Option(sList[i],sList[i]))
}
}


</script>


<body leftmargin="2" topmargin="10" marginwidth="2" marginheight="2" onLoad="getSelect()" >
<TABLE width="610" height="398" border=0 align=center cellPadding=3 cellSpacing=1 bgColor=95BDF1
valign="top">
<TBODY>
<TR>
<TD height="23" colspan="2" background="images/ban2.gif"><div align="center"><strong>选择发送对象用户</strong></div></TD>
</TR>
<TR>
<TD width="395" height="23" bgcolor="#E3F1FF"><div align="center">↓请选择(按姓氏拼音排序)</div></TD>
<TD width="200" bgcolor="#E3F1FF"><div align="center">↓已选择对象</div></TD>
</TR>
<TR>
<TD colspan="2" bgColor=#e3f1ff ><table width="99%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="86%"><form name="form1" method="post" action="">
<table width="495" border="0" align="center" cellpadding="3" cellspacing="3">
<tr>
<td width="5" height="33" valign="top"><select name="zhou" size="20" id="zhou" onChange="Menu(this.form,1);">
<option value="" selected>--请选择--</option>

<option value='直属校'>直属校</option>

<option value='学区'>学区</option>

</select></td>
<td width="150"><select size="20" name="xx" onChange="JavaScript:init(selectedIndex)" ondblclick="JavsScript:addone(selectedIndex)">
</select></td>
<td width="70" align="center"><br>
<input type="button" name="addone_btn" value="单个增加" disabled onClick="JavsScript:addone(document.all('xx').selectedIndex)">
<BR>
<BR>
<input type="button" name="deleteone_btn" value="单个删除" disabled onClick="JavsScript:deleteone(document.all('yy').selectedIndex)">
<BR>
<input type="button" name="addall_btn" value="全部增加" onClick="JavsScript:addall()">
<br>
<BR>
<input type="button" name="deleteall_btn" value="全部删除" disabled onClick="JavsScript:deleteall()">
<BR>
<BR> </td>
<td width="223"><select size="20" name="yy" onChange="JavaScript:document.all('deleteone_btn').disabled = false;" ondblclick="JavsScript:deleteone(selectedIndex)" style="width:180px">
</select>

</td>
</tr>
</table>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><div align="center">
<input type="submit" name="Submit" value="确定" onclick="clickit()">
   </div></td>
</tr>
</table>
<script language="javascript">
Menu(eval("document.form1"),1)
</script>

</form></td>
</tr>
</table></TD>
</TR>
</TABLE>

</body>
</html>
...全文
1421 11 打赏 收藏 举报
写回复
11 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
autorun_bob 2011-01-05
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 autorun_bob 的回复:]

貌似IE8也不支持parent。
[/Quote]
>
autorun_bob 2010-12-30
  • 打赏
  • 举报
回复
貌似IE8也不支持parent。
蓝色_冰点 2010-02-22
  • 打赏
  • 举报
回复
试一下opener.document
改成 parent.document
ye 2010-02-22
  • 打赏
  • 举报
回复
谢谢了,
问题解决
孟子E章 2010-02-22
  • 打赏
  • 举报
回复
document.getElementById("yy").add(Option(document.getElementById("xx").options[n].innerText,document.getElementById("xx").options[n].value));

写成

document.getElementById("yy").add(new Option(document.getElementById("xx").options[n].innerText,document.getElementById("xx").options[n].value));


document.getElementById("yy").add(Option(document.getElementById("xx").options[i].innerText,document.getElementById("xx").options[i].value));
写成
document.getElementById("yy").add(new Option(document.getElementById("xx").options[i].innerText,document.getElementById("xx").options[i].value));
即可
ye 2010-02-22
  • 打赏
  • 举报
回复
我在测试地址放在这里,大家帮忙看下




点击单个增加 ,全部增加 这些按钮,在IE8下不能运行,IE7,IE6正常,要怎么改才都能正常呢


测试地址:http://test.xmta.com/s.html


如何修正IE8.0下的错误,谢谢了
葬月礼 2010-02-21
  • 打赏
  • 举报
回复
调试是最好的办法。。。。。。
浴火_凤凰 2010-02-21
  • 打赏
  • 举报
回复
在IE8下不能运行,IE7,IE6正常会不会是权限问题
街头小贩 2010-02-21
  • 打赏
  • 举报
回复
我在看到的是一开始报:

消息: 'opener.document' 为空或不是对象
行: 175
字符: 7
代码: 0

运行的时候提示document.all参数无效
ivws_19 2010-02-21
  • 打赏
  • 举报
回复
是innerText问题么,改成innerHTML试试
相关推荐
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2010-02-21 03:29
社区公告
暂无公告