javascript - 在 mac osx 的 firefox 浏览器中,单击按钮时 Document.activeelement 返回正文而不是按钮元素

标签 javascript jquery macos firefox browser

在我的 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/

相关文章:

javascript - 如何获得类型化 react 组件属性的代码完成?

Javascript:TypeError:值未实现接口(interface) FormData

macos - 原子编辑器 "permission denied"| OSX 10.9.4 小牛队

xcode - 从框架加载 xib 文件

macos - Qt 应用程序显示表情符号而不是 unicode 字符

javascript - JSON 中位置 0 vuejs 中的意外标记 <

javascript - 从异步 JavaScript 方法获取结果,无需回调

javascript - 高度 100%,两个 div 使用左右浮动(清除)

javascript - 没有为以太坊智能合约生成事件日志

javascript - 冒泡事件从基类向下传递到子类