2012-07-18 42 views
0

IE8不断抛出错误权限被拒绝权限被拒绝IE8 jQuery的按键(输入)

  • jQuery的1.7.2.min.js |行:2,Char:21695
  • jquery-1.7.2.js |行:1712,Char:4

(取决于我使用的版本)。

它发生在我按下输入时('输入'跳转到tabindexes上的function)。它只发生在使用IE8的特定服务器和特定PC组上。

[编辑] 调用

$("[TabIndex='"+tabindex+"']").focus() 
$("[TabIndex='"+tabindex+"']").blur() 

的完整代码

//WALKING with ENTER 
     var tabindex = 1; //start tabindex || 150 is last tabindex 
     $(document).keypress(function(event) { 
      var keycode = (event.keyCode ? event.keyCode : event.which); 
      if(keycode == '13') { //onEnter 
       if($("[TabIndex='"+tabindex+"']").attr('id') == 'submit_btn'){ //if on 'sbm - button' click! 
        $("#submit_btn").click(); 
      return false; 
       }; 
       $("[TabIndex='"+tabindex+"']").blur()//.removeClass('highlight_input'); 
       tabindex++; 
       //while element exist or it's readonly and tabindex not reached max do 
       while(($("[TabIndex='"+tabindex+"']").length == 0 || $("[TabIndex='"+tabindex+"']:not([readonly])").length == 0) && tabindex != 150){ 
        tabindex++; 
       } 
       if(tabindex == 150){ tabindex = 1 } //reseting tabindex if finished 
       $("[TabIndex='"+tabindex+"']").focus()//.addClass('highlight_input'); 
       return false; 
      } 
     }); 

当它发生时,我可以重现此错误只注销/重新登录的Windows(XP) - >要回本界面并按下“Enter”。 F5之后:一切正常。

有没有人曾经遇到过这样的事情?当模糊()对焦()洁具称为发生

+0

检查这一点,它可以帮助:http://stackoverflow.com/questions/11502122/jquery-keypress-event-for-cmds-and-ctrls/11502343#11502343 – 2012-07-18 08:46:01

+0

这样不会回报IE8 – 2012-07-18 08:54:54

+0

不准在这一刻我无法访问test-srv,但我认为问题不在于事件的“onEnter”是如何被绑定的,而是jQuery如何对诸如$(“[TabIndex ='”+ tabindex +“' ]“)。焦点()。无论如何,我会尝试你的solutinon,一旦我去srv。谢谢 – karlisup 2012-07-18 09:32:37

回答

0

问题,所以我必须找到解决办法。任务是调用(几乎)纯JavaScript而不是调用jquery focus/blur。

//Focus workaround for IE8 (exception) 
var elid = $('input[tabindex='+tabindex+']').attr("id"); 
var element = document.getElementById(elid); 
element.blur(); 

var elid = $('input[tabindex='+tabindex+']').attr("id"); 
var element = document.getElementById(elid); 
element.focus(); 

代替

$("[TabIndex='"+tabindex+"']").blur() 
$("[TabIndex='"+tabindex+"']").blur() 

删除评论,如果您有任何疑问或 你所面临的同样的问题。