ng-focus 在 AngularJS 中不适用于 iframe

ng-focus does not work with iframe in AngularJS

ng-focus 不适用于 AngularJS 中的 iframe。我可能在这里遗漏了什么?

这是我的代码:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<iframe src="example.com" tabindex="-1" ng-focus="alert('foo');">

</iframe>

fiddle

它是否应该工作或将集中处理除 iframe 之外的所有元素?

ngFocus 支持元素 window、input、select、textarea 和 docs 所说的 a。为 iframe 设置 ngFocus 将不起作用。

如文档中的示例所述,这些是 ngFocus 支持的元素。

<window, input, select, textarea, a
  ng-focus="expression">
...
</window, input, select, textarea, a>

再看看这个article,很清楚了。

对于 window 对象焦点,您可以按以下方式使用 $window 包装器:

$window.onfocus = function(){
   console.log("focused");
 }