Eu gostaria de perguntar sobre a tag HTML
<a href="www.mysite.com" onClick="javascript.function();">Item</a>
Como tornar isso uma tag funcionando com href e onClick ? (prefira o onClick executando primeiro e depois o href)
Eu gostaria de perguntar sobre a tag HTML
<a href="www.mysite.com" onClick="javascript.function();">Item</a>
Como tornar isso uma tag funcionando com href e onClick ? (prefira o onClick executando primeiro e depois o href)
Respostas:
Você já tem o que precisa, com uma pequena alteração na sintaxe:
<a href="www.mysite.com" onclick="return theFunction();">Item</a>
<script type="text/javascript">
function theFunction () {
// return true or false, depending on whether you want to allow the `href` property to follow through or not
}
</script>
O comportamento padrão das <a>
tags onclick
e href
propriedades é executar onclick
oe seguir o href
tempo onclick
que não retornar false
, cancelando o evento (ou o evento não foi impedido)
href="#"
lá em vez de uma URL real.
Use jQuery . Você precisa capturar o click
evento e depois acessar o site.
$("#myHref").on('click', function() {
alert("inside onclick");
window.location = "http://www.google.com";
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" id="myHref">Click me</a>
href
atributo significativo .
Para conseguir isso, use o seguinte html:
<a href="www.mysite.com" onclick="make(event)">Item</a>
<script>
function make(e) {
// ... your function code
// e.preventDefault(); // use this to NOT go to href site
}
</script>
Aqui está um exemplo de trabalho .
<a href="http://example.com" >Item</a>
e no Chrome, vejo uma mensagem para permitir que a página execute este link (alerta no final da barra de URL do Chrome). No safari no console, vejo o seguinte: [bloqueado] A página fiddle.jshell.net/_display não tinha permissão para exibir conteúdo não seguro de example.com - portanto, provavelmente esse é um problema de segurança (apenas no violino?)
Não é necessário jQuery.
Algumas pessoas dizem que usar onclick
é uma má prática ...
Este exemplo usa javascript puro do navegador. Por padrão, parece que o manipulador de cliques será avaliado antes da navegação, para que você possa cancelar a navegação e fazer a sua própria, se desejar.
<a id="myButton" href="http://google.com">Click me!</a>
<script>
window.addEventListener("load", () => {
document.querySelector("#myButton").addEventListener("click", e => {
alert("Clicked!");
// Can also cancel the event and manually navigate
// e.preventDefault();
// window.location = e.target.href;
});
});
</script>
Use ng-click
no lugar de onclick
. e é tão simples quanto isso:
<a href="www.mysite.com" ng-click="return theFunction();">Item</a>
<script type="text/javascript">
function theFunction () {
// return true or false, depending on whether you want to allow
// the`href` property to follow through or not
}
</script>