Was ist das sauberste und kürzeste Javascript, um eine URL, auf der sich der Benutzer befindet, über eine URL an einen anderen Prozess zu übermitteln?
-
09-06-2019 - |
Frage
Wie beim Delicious-Übermittlungs-Lesezeichen hätte ich gerne ein Standard-JavaScript, mit dem ich jede besuchte URL an eine Website eines Drittanbieters senden kann, sofern dies per URL möglich ist.Vorschläge?
Zum Beispiel habe ich verwendet
javascript:void(location.href="http://www.yacktrack.com/home?query="+encodeURI(location.href))
So weit, aber ich frage mich, ob es etwas Anspruchsvolleres gibt, das ich verwenden oder besser üben könnte.
Lösung
Möchten Sie etwas genau wie das Bookmarklet Delicious (wie in, etwas der Benutzer aktiv klickt auf die URL einreichen)? Wenn ja, könnten Sie wahrscheinlich nur ihren Code kopieren und die Ziel-URL ersetzt werden:
javascript:(function(){
location.href='http://example.com/your-script.php?url='+
encodeURIComponent(window.location.href)+
'&title='+encodeURIComponent(document.title)
})()
Sie müssen möglicherweise die Query-String-Namen ändern, usw., entsprechen, was Ihr Skript erwartet.
Wenn Sie einen Benutzer über Ihre Website automatisch verfolgen möchten, wird dies wahrscheinlich nicht möglich sein. Sie müßten die URL mit AJAX beantragen, aber der Web-Browser wird nicht zulassen, dass Javascript eine Anfrage außerhalb der Ursprungsdomäne zu machen. Vielleicht kann es mit iframe
Betrügerei.
Edit: John schlug mich, um es
.Andere Tipps
document.location = "http://url_submitting_to.com?query_string_param=" + window.location;
Eine andere Möglichkeit, um etwas so sein würde:
<form action="http://www.yacktrack.com/home" method="get" name="f">
<input type="hidden" name="query" />
</form>
dann Javascript wäre:
f.query.value=location.href; f.submit();
oder Sie können die [save link] mit dem einreichen wie folgt kombiniert werden:
<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>
und wenn Sie serverseitigen Code ausführen, können Sie in der Lage stecken, so dass Sie JavaScript frei sein kann:
<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>