9

次のようにjsメソッドを使用したいと思い.click()ます。

document.getElementById(id).click();

しかし、それが機能することが不可欠であるため、この.click()メソッドをサポートしているブラウザーは何か疑問に思いました。

4

3 に答える 3

4

私が遭遇した、サポートしていない唯一のブラウザ.click()はSafariです。Safariは.click()ボタン(eg <input type="button" />)をサポートしますが、アンカー要素(eg)などの他の要素はサポートしません<a href="#">Click Me</a>

Safariの場合、回避策を使用する必要があります。

function click_by_id(your_id)
{
    var element = document.getElementById(your_id);
    if(element.click)
        element.click();
    else if(document.createEvent)
    {
        var eventObj = document.createEvent('MouseEvents');
        eventObj.initEvent('click',true,true);
        element.dispatchEvent(eventObj);
    }
}

上記の機能を使用すると、90%以上のブラウザをサポートできます。

IE7-10、Firefox、Chrome、Safariでテスト済み。

于 2014-05-06T14:08:05.900 に答える
0

MDNによるとHTMLElement.click()、Chrome 20以降、Firefox 5以降、Safari6以降でサポートされています。しかし、それは不正確かもしれません

于 2015-12-08T05:16:14.520 に答える
0

私はこの問題を抱えていて、代わりにそれを$('#selector').click(function(){}); 使用しました(document).on('click','#selector',function(){});

于 2019-10-24T12:00:56.607 に答える