在mac osx的firefox浏览器中,Document.activeelement在点击按钮时返回body而不是button元素

时间:2015-07-13 10:54:46

标签: 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>

感谢。

1 个答案:

答案 0 :(得分:1)

将您的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中,通过事件参数传递给相关的事件处理函数来访问事件对象。