在我的 javascript 中,我使用 document.activeelement 来获取事件元素,但是对于按钮单击,它为我提供了正文,而不是 Mac OSX Yosemite 的 Firefox 浏览器中的按钮。在 Windows 中它工作正常。
任何人都可以帮忙了解如何将事件元素作为按钮获取吗?
示例代码
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function MainElement(){
ActiveElement();}
function ActiveElement()
{
var obj;
obj=(window.event)?((event.target)?event.target:(event.srcElement)?event.srcElement:null):document.activeElement;
alert(obj); // returns body element
}
</script>
</head>
<body>
<button onclick="MainElement()"></button>
</body>
</html>
谢谢。
最佳答案
将 HTML 更改为:
<button onclick="MainElement(event)">Button</button>
JavaScript 为:
function MainElement(event) {
ActiveElement(event);
}
function ActiveElement(event) {
event = event || window.event
alert (event.target); //The button HTMLElement
alert (event.target.tagName); //BUTTON
}
一些注意事项:
- 在 IE 中,事件对象完全通过显式对象
window.event
来访问。 - 在 Firefox 中,通过将事件参数传递给相关事件处理函数来访问事件对象。
关于javascript - 在 mac osx 的 firefox 浏览器中,单击按钮时 Document.activeelement 返回正文而不是按钮元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31381490/