gpt4 book ai didi

javascript - 如何在不同浏览器的 DOM 中使用 activeElement.tagName?

转载 作者:行者123 更新时间:2023-11-27 23:22:24 25 4
gpt4 key购买 nike

在尝试使用 phonegap 为 android 和 ios 应用程序构建 UI 时,我遇到了困难:

我的函数 getFocus() 尝试使用

获取焦点元素的标签名称和/或 ID
document.activeElement.tagName

但所有浏览器似乎都得到不同的结果:

  • Chromium(54.0.2840.87(64 位))和 androids Webkit 返回我所期望的:“BUTTON”
  • Safari (10.0)、Firefox (49.0.2) 和 ios Webkit 返回:"DIV"

它们似乎都是从 DOM 的不同起点来看的。

为了至少从 safari/ios webkit 以及 chromium/android webkit 获得 BUTTON,我怎样才能更精确?

完整的示例代码如下:

[edit] 我编辑了一行以回应用户 the8472 的有用评论,并删除了标签周围的标签 [/edit]

<!DOCTYPE html>
<html>

<head>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css">

<script src="https://code.jquery.com/jquery-2.1.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script>
</head>

<body>

<div data-role="page" id="add">
<div data-role="header">
<h1>GetFocus</h1>
</div>

<div data-role="main" class="ui-content">
<p></p>
<p>
textfield1:
<input type="text" id="title" placeholder="textfield1" />
textfield2:
<input type="text" id="message" placeholder="textfield2" />

<button id="mybutton" onclick="javascript:getFocus()">get focus</button>
</p>
</div>
</div>



<script type="text/javascript" src="cordova.js"></script>
<script src="phonegap.js"></script>
<script type="text/javascript">

function getFocus()
{
alert(document.activeElement.tagName);
};

</script>
</body>

</html>

最佳答案

a 中的

button 似乎无论如何都无效。如果您正在做未指定的事情,您不应该期待一致的行为。

https://html.spec.whatwg.org/#the-a-element

4.5.1 The a element

Content model: Transparent, but there must be no interactive content or a element descendants.

https://html.spec.whatwg.org/#interactive-content-2

Interactive content is content that is specifically intended for user interaction.

a (if the href attribute is present), audio (if the controls attribute is present), button, details, embed, iframe, img (if the usemap attribute is present), [...]

关于javascript - 如何在不同浏览器的 DOM 中使用 activeElement.tagName?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40450594/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com