Javascript在IE中不起作用 [英] Javascript not working in IE

查看:76
本文介绍了Javascript在IE中不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好,我是一名初学者的ASP程序员,被困在一个问题上.我的aspx页面上有很长的javascript代码.在IE上接受的所有Internet浏览器上都可以正常工作.当我尝试在IE上加载页面时,它需要很长的时间才能加载(例如15分钟),或者它说即没有响应.无论如何,我可以使javascript在IE上运行得更快吗?任何帮助将不胜感激,谢谢您.

这是我的代码:

Hi all, I am a beginner asp programmer and am stuck on a problem. I have quite a long javascript code on my aspx page. It works fine on all internet browsers accept on IE. When i try to load the page on IE it takes a very long time to load(like 15 minutes) or it says ie is not responding. Is there anyway i can make the javascript run faster on ie? Any help will be much appreciated Thanking you in advnce.

here is my code:

<script type="text/javascript">

function contract(control,member_number) {

var control_arr = control.split('_');

var x = parseFloat(control_arr[1]);
var y = parseFloat(control_arr[2]);

// make sure there is at least 1 member right

var next_right = document.getElementById('cell_'+(x+1)+'_'+y).innerHTML;

if (next_right == '') {
return false;
}

// end make sure

var num_down = 0;

for (i=(y+1); i<=3125; i++) {

var contents = document.getElementById('cell_'+x+'_'+i).innerHTML;

if (contents == '') {
num_down = num_down + 1;
} else {
break;

}

}

num_down = num_down + 1;

for (i=x; i<=5; i++) {

for (j=(y); j<(y+num_down); j++) {

if (!((i<=x) && (j==y))) {

document.getElementById('cell_'+i+'_'+j).innerHTML = '';

}

}


}

var on_click = document.getElementById('btn_'+x+'_'+y).getAttribute('onClick');

var on_click_arr = on_click.split("'");

document.getElementById('btn_'+x+'_'+y).setAttribute('onClick',"expand('"+on_click_arr[1]+"','"+on_click_arr[3]+"');");

document.getElementById('btn_'+x+'_'+y).setAttribute('class','btn-icon btn-grey btn-plus');

}

function expand(control,member_number)
{
var xmlhttp;
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {


   // document.getElementById("main_container_heading").innerHTML=xmlhttp.responseText;

   var result = xmlhttp.responseText;

   var result_arr = result.split('|');

   var control_arr = control.split('_');

   document.getElementById('btn_'+control_arr[1]+'_'+control_arr[2]).setAttribute('class','btn-icon btn-grey btn-minus');

   var on_btn_click = document.getElementById('btn_'+control_arr[1]+'_'+control_arr[2]).getAttribute('onClick');

   var on_btn_click_arr = on_btn_click.split("'");

   document.getElementById('btn_'+control_arr[1]+'_'+control_arr[2]).setAttribute('onClick',"contract('"+on_btn_click_arr[1]+"','"+on_btn_click_arr[3]+"');");

   // move everything down

   if ((result_arr.length - 1) > 0) {

   for (j=0; j<3125; j++)
   {

   for (h=0; h<=(5); h++) {

   var here = 3125 - j;

   var num_down = result_arr.length - 1;

   if ((here-num_down) > (parseFloat(control_arr[2]))) {


   var content = document.getElementById('cell_'+h+'_'+(here-num_down)).innerHTML;


//   if (content.indexOf('box_1_5') != -1) {
//
//   alert('here');
//   }

    if (!(content == '')) {

     var click_event = document.getElementById('btn_'+h+'_'+(here-num_down)).getAttribute('onClick');

    var click_event_arr = click_event.split("'");

    document.getElementById('btn_'+h+'_'+(here-num_down)).setAttribute('onClick',click_event_arr[0]+"'cell_"+h+"_"+here+"','"+click_event_arr[3]+"');");


    document.getElementById('box_'+h+'_'+(here-num_down)).setAttribute('id','box_'+h+'_'+here);
    document.getElementById('btn_'+h+'_'+(here-num_down)).setAttribute('id','btn_'+h+'_'+here);



    content = document.getElementById('cell_'+h+'_'+(here-num_down)).innerHTML;

    document.getElementById('cell_'+h+'_'+here).innerHTML = content;

    document.getElementById('cell_'+h+'_'+(here-num_down)).innerHTML = '';

    }



   }

   }

   }

  }

   // end move everything down

   for (i=0; i<(result_arr.length-1); i++)
   {

   var next_right = (parseFloat(control_arr[1]))+1;

   var next_down = (parseFloat(control_arr[2]))+i;

   var result_arr2 = result_arr[i].split('~');

   var formatted_cell = result_arr2[4];

   if (formatted_cell.length < 10) {
   formatted_cell = "27"+formatted_cell;
   }

   var rank = "";

   if (result_arr2[5] == 1) {
   rank = 'bronze';
   } else if (result_arr2[5] == 2) {
   rank = 'silver';
   } else if (result_arr2[5] == 3) {
   rank = 'gold';
   } else if (result_arr2[5] == 4) {
   rank = 'platinum';
   }

   var insert_box = '<div id="box_'+next_right+'_'+next_down+'" class="box round" style="padding-top:0px;padding-bottom:0px;width:200px;background:transparent;display:block;margin-bottom:5px;"><h2 style="height:33px;margin:0px 0px 0 0px;background-image:url(img/rank_'+rank+'.png);"><button id="btn_'+next_right+'_'+next_down+'" onClick="expand(\'cell_'+next_right+'_'+next_down+'\',\''+result_arr2[0]+'\');" class="btn-icon btn-grey btn-plus" style="width: 16px;padding-left: 0px !important;height:13px; background-color: transparent;border-width:0px; border-color: transparent;-webkit-box-shadow:0px 0px 0px;"><span style="left:0px;top:-2px;"></span></button>&nbsp;&nbsp;'+result_arr2[1]+'<div align="right"><span align="right" style="font-weight:normal;align:right;display:block;">Cell: '+formatted_cell+'</br >Com: R'+result_arr2[2]+'&nbsp;&nbsp;People: '+result_arr2[3]+'</span></div></h2></div>';

   document.getElementById('cell_'+next_right+'_'+next_down).innerHTML = insert_box;

   }



    }
  }
xmlhttp.open("GET","business_tree.aspx?is_ajax=1&member_number="+member_number+"&main_member="+document.getElementById('main_member_number').value+'&business_unit='+document.getElementById('business_unit_number').value,true);
xmlhttp.send();
}
</script>



我只是添加了代码,以向查看该问题的人们提供更多信息.



I only added the code to provide more information to the people viewing the question.

推荐答案

ASP不是ASP.NET,仅是FYI.您正在使用VB.NET学习ASP.NET.

您必须修复您的JavaScript.您应该删除所有功能,并一次添加一个功能,直到找到要中断的功能为止.每个浏览器都在自己的代码中运行js,因此某些功能可以在一个应用程序中运行而不是在另一个应用程序中运行并不少见. jquery [ ^ ]库封装了许多这些差异,并且在不学习如何尽可能地使用jquery的情况下学习javascript是没有意义的.
ASP is not ASP.NET, just FYI. You''re learning ASP.NET, with VB.NET.

You have to fix your javascript. You should remove all of it, and add one function at a time until you find the one that is breaking. Every browser runs the js in it''s own code, so it''s not uncommon for something to work in one and not another. The jquery[^] library wraps a lot of those differences and it makes no sense to learn javascript without also learning how to use jquery where-ever possible.


报价:

在IE上接受的所有互联网浏览器上都可以正常工作

It works fine on all internet browsers accept on IE



真的吗?

好吧,首先,您的问题与您在说什么相抵触.我认为您的意思是除IE之外的所有浏览器.是吗?

其次,如果不查看代码,几乎没有发言权.



Really?

Well, first of all your question conflicts what you are syaing. I think you mean all browsers except IE. Is it?

Second, it''s almost close to impossible to have any say without looking at your code.


您可以在单独的页面中使用javascript代码.

在您的aspx页面中调用它.
you can use javascript code in separate page.

call it in your aspx page.


这篇关于Javascript在IE中不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆