Qual é o Javascript mais limpo e mais curto para enviar uma URL em que o usuário está para outro processo via URL?

StackOverflow https://stackoverflow.com/questions/54426

  •  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.

Foi útil?

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>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top