次のようにjsメソッドを使用したいと思い.click()
ます。
document.getElementById(id).click();
しかし、それが機能することが不可欠であるため、この.click()
メソッドをサポートしているブラウザーは何か疑問に思いました。
次のようにjsメソッドを使用したいと思い.click()
ます。
document.getElementById(id).click();
しかし、それが機能することが不可欠であるため、この.click()
メソッドをサポートしているブラウザーは何か疑問に思いました。
私が遭遇した、サポートしていない唯一のブラウザ.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でテスト済み。
MDNによるとHTMLElement.click()
、Chrome 20以降、Firefox 5以降、Safari6以降でサポートされています。しかし、それは不正確かもしれません。
私はこの問題を抱えていて、代わりにそれを$('#selector').click(function(){});
使用しました(document).on('click','#selector',function(){});