Só estou me perguntando como posso usar o JavaScript para simular um clique em um elemento.
Atualmente tenho:
<script type="text/javascript">
function simulateClick(control)
{
if (document.all)
{
control.click();
}
else
{
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null );
control.dispatchEvent(evObj);
}
}
</script>
<a href="http://www.google.com" id="mytest1">test 1</a><br>
<script type="text/javascript">
simulateClick(document.getElementById('mytest1'));
</script>
Mas não está funcionando :(
Alguma ideia?
javascript
Belgin Fish
fonte
fonte
Respostas:
Aqui está o que eu cozinhei. É bem simples, mas funciona:
Uso:
fonte
document.querySelector('[value="2706236"]').nextSibling.nextSibling.dispatchEvent(ev);
:)dispatchEvent
ouclick
invocações comsetTimeout
, como parece quedispatchEvent
é síncrona .Event.initEvent
agora está obsoleta developer.mozilla.org/en/docs/Web/API/Event/initEventQue tal algo simples como:
Suportado até pelo IE.
fonte
Você já pensou em usar o jQuery para evitar toda a detecção do navegador? Com o jQuery, seria tão simples quanto:
fonte
Referência
fonte
Você pode economizar muito espaço usando o jQuery. Você só precisa usar:
fonte
A melhor resposta é a melhor! No entanto, quando não estava acionando eventos de mouse para mim no Firefox
etype = 'click'
.Então, mudei o
document.createEvent
para'MouseEvents'
e resolvi o problema. O código extra é para testar se outro código está interferindo ou não no evento, e se ele fosse cancelado, eu o registraria no console.fonte
Siga este link para saber sobre os eventos do mouse usando Javascript e compatibilidade do navegador para o mesmo
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent#Browser_compatibility
fonte