首页>Program>source

我具有以下功能

function change() 
 {
       var input = document.getElementById('pas');
       var input2 = input.cloneNode(false);
       input2.type = 'password';
       input.parentNode.replaceChild(input2,input);
       input2.focus();
  }

但是 focus() 在ie7中不起作用,那我该怎么办! 我想将光标放在输入中!

谢谢

更新

很好的解决方案,谢谢,但是现在在歌剧中不起作用:(

最新回答
  • 2021-1-10
    1 #

    对于IE,您需要使用settimeout函数,因为它很懒,例如:

    setTimeout(function() { document.getElementById('myInput').focus(); }, 10);
    

    来自http://www.mkyong.com/javascript/focus-is-not-working-in-ie-solution/

    对于歌剧,这可能会有所帮助: 如何在歌剧的文本框上的所需索引中设置焦点

  • 2021-1-10
    2 #

    我们遇到了同样的问题.为了集中精力,我们使用General函数,该函数应用了settimeout解决方案,该解决方案在下面提到: http://www.mkyong.com/javascript/focus-is-not-working-in-ie-solution/ 100毫秒。

    在某些屏幕上仍然无法正常工作.特别是在包含iframe的情况下。 还有另一个已知的和类似的IE问题:
    IE 9和IE 10无法时常在输入文本框中输入文本-> IE 9和IE 10无法时常在输入文本框中输入文本

    我注意到的是,当您有焦点时,没有指针,则可以通过按TAB键(将焦点放在下一个元素上)来应用变通方法,然后按SHIFT + TAB组合键将返回到具有焦点并键入指针的目标元素。 为了确保我们可以在内部输入中键入内容,我们将重点放在随机元素上,然后再关注目标输入。

    $('body').focus();
    n.focus();
    

    因此,我们在一般焦点函数的javascript / JQuery中应用了相同的解决方案。 所以有一个if语句

    ...        
    if($.browser.msie) {
        setTimeout(function() { try {
            $('body').focus(); //First focus on random element
            $(n).focus(); //Now focus on target element
        } catch (e) { /*just ignore */ } }, 100); //See http://www.mkyong.com/javascript/focus-is-not-working-in-ie-solution/
    } else { //Standard FF, Chrome, Safari solution...
    ...
    

    可以肯定的是,由于存在较大的回归,我们仍将settimeout作为备份保留解决方案。 在IE10,IE11,Firefox 45,Chrome 49.0.2623.87上进行了测试

  • 2021-1-10
    3 #

    IE7不支持 focus() 方法.我没有看到任何方法。

  • 2021-1-10
    4 #

    我遇到了同样的问题,并且通过制作SetInitialFocus函数并在我的PageLoad函数中调用它,能够使IE在后台使用代码.

    看看下面的例子并试一试,它对我有用。 http://www.cambiaresearch.com/c4/df9f071c-a9eb-4d82-87fc-1a66bdcc068e/Set-Initial-Focus-on-an-aspnet-Page.aspx

  • 2021-1-10
    5 #

    function change() {
        var input = document.getElementById('pas');
        var input2 = input.cloneNode(false);
        input2.type = 'password';
        input.parentNode.replaceChild(input2, input);
        setTimeout(function () {
            input2.focus();
        }, 10);
    }
    

  • Java中的"无法取消引用"
  • python:命令行输入导致SyntaxError