Desafortunadamente, estoy trabajando con javascript de terceros, que inserta enlaces en mis páginas. En lugar de simplemente usar estos enlaces como están, quiero usar elementos proxy, que, cuando se hace clic, desencadenan el evento click en los enlaces de terceros.Desencadenar javascript en el atributo href con jQuery .click() (o similar)
Los enlaces 3rd Party Pack javascript en el atributo href, así:
<a id="horribleLink" href="javascript:doSomething()">Click me</a>
Mi elemento de proxy es el siguiente:
<button rel="horribleLink" class="linkProxy">No, click me</button>
y un poco de jQuery'd Javascript para vincularlos juntos:
$('button.linkProxy').click(function(){
$('#' + $(this).attr('rel')).click();
});
Ahora, esto funciona perfectamente si el enlace de terceros es
solo un enlace estándar (
un onclick ligeramente menos horrible (<a id="horribleLink" href="http://www.google.com">Click</a>
) o
<a href="#" id="horribleLink" onclick="doSomething()">Click</a>
), pero cuando el javascript está dentro del atributo href, activar 'clic' no hace nada.
¿Alguien me puede decir por qué y si hay una solución razonable?
Actualizado Como dijo milimétrica, la causa principal parece ser que los navegadores impiden 'falsificar clics' de anclas - He quitado mi ejemplo 'eslabón estándar', ya que es otra situación que no funciona. El controlador onclick funciona, sin embargo, como era de esperar.
desafortunado hecho ... –
Para el inicio, se puede comprobar la sintaxis? 'onclick =" doSomething() 'debe ser' onclick = "doSomething()" ' – dugokontov
No debería' href = "javascript: doSomething" 'be' href = "javascript: doSomething()" '? –