AngularJs:自动对焦无法在Firefox中运行

时间:2015-05-12 08:07:09

标签: javascript angularjs

这是自动对焦的简单指令:

app.directive('autoFocus', function($timeout) {
    return {
        restrict: 'AC',
        link: function(_scope, _element) {
            $timeout(function(){
                _element[0].focus();
            }, 0);
        }
    };
});

演示:http://jsfiddle.net/ounsqcmt/55/

此指令在Chrome中效果很好,但在Firefox中不起作用。 version 36.00
有什么想法吗?

2 个答案:

答案 0 :(得分:0)

它在firefox中显示警告: “不推荐使用getAttributeNode()。请改用getAttribute()。”

似乎这是Firefox中的内部问题,至少有一个警告在https://bugzilla.mozilla.org/show_bug.cgi?id=690120中得到修复。 jQuery也提出了控制台中显示的警告问题。

http://bugs.jquery.com/ticket/12072

但它表明bug已经被他们的结局修复了。

这也可能既不是FireFox的问题,也不是jQuery的错误。由于DOM 4级API的重大变化,它可能是DOM接口问题。

See this stack overflow link for additional information:

答案 1 :(得分:0)



var app = angular.module("App", []);

app.controller("AppCtrl", function($scope) {
       
})

app.directive('autoFocus', function($timeout) {
    return {
        restrict: 'AC',
        link: function(_scope, _element) {
        		
            $timeout(function(){
                 window.focus()
                _element[0].focus();
            }, 0);
        }
    };
});

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="App" ng-controller="AppCtrl ">
    <form>
        
        <input type="text" />
        <input name="theInput" auto-focus />
        
    </form>
    
    

		


</div>
&#13;
&#13;
&#13;