Qual é o Javascript mais limpo e mais curto para enviar uma URL em que o usuário está para outro processo via URL?
-
09-06-2019 - |
Pergunta
Assim como o bookmark-let de envio do Delicious, gostaria de ter algum JavaScript padrão que possa usar para enviar qualquer URL visitado a um site de terceiros, quando isso for possível por URL.Sugestões?
Por exemplo, tenho usado
javascript:void(location.href="http://www.yacktrack.com/home?query="+encodeURI(location.href))
até agora, mas me pergunto se há algo mais sofisticado que eu possa usar ou uma prática melhor.
Solução
Você quer algo exatamente como o bookmarklet Delicious (como algo em que o usuário clica ativamente para enviar o URL)?Nesse caso, você provavelmente poderia simplesmente copiar o código e substituir o URL de destino:
javascript:(function(){
location.href='http://example.com/your-script.php?url='+
encodeURIComponent(window.location.href)+
'&title='+encodeURIComponent(document.title)
})()
Pode ser necessário alterar os nomes das strings de consulta, etc., para corresponder ao que o seu script espera.
Se você deseja rastrear um usuário através do seu site automaticamente, isso provavelmente não será possível.Você precisaria solicitar o URL com AJAX, mas o navegador da web não permitirá que o Javascript faça uma solicitação fora do domínio de origem.Talvez seja possível com iframe
trapaça.
Editar: John chegou antes de mim.
Outras dicas
document.location = "http://url_submitting_to.com?query_string_param=" + window.location;
Outra opção seria algo assim:
<form action="http://www.yacktrack.com/home" method="get" name="f">
<input type="hidden" name="query" />
</form>
então seu javascript seria:
f.query.value=location.href; f.submit();
ou você pode combinar o [link para salvar] com o envio assim:
<form action="http://www.yacktrack.com/home" method="get" name="f" onsubmit="f.query.value=location.href;">
<input type="hidden" name="query" />
<input type="submit" name="Save Link" />
</form>
e se estiver executando código do lado do servidor, você pode inserir o local para ficar livre de JavaScript:
<form action="http://www.yacktrack.com/home" method="get" name="f">
<input type="hidden" name="query" value="<%=Response.Url%>" />
<input type="submit" name="Save Link" />
</form>