Frage

Ich bin ein Javascript Anfänger eine grundlegende Share-Taste als Lernprojekt zu bauen versucht. Ich bin ein wenig über einen Aspekt stapfte. Während ich die URL der aktuellen Seite greifen und dass in der URL übergeben, der die Freigabe Form prepopulates, ich bin nicht sicher, wie die HTML-Titel zu greifen.

Hier ist, was ich zu weit:

<a href="http://www.domain.com/submit" onclick="window.location = 'http://www.domain.com/submit?url=' + encodeURIComponent(window.location); return false;"> Share This </a> 

Was mache ich mit dem Onclick Abschnitt hinzufügen sowie der aktuellen Seite Titel zu bekommen? Was auch immer es ist, würde als bestanden "title =" in der URL.

Bonus: Gibt es etwas, das ich hinzufügen kann entlang einiger Text von der aktuellen Seite markiert schicken? Das wäre wie in der URL gehen "body ="

Also habe ich mich in diese Lücken zu füllen:

<a href="http://www.domain.com/submit" onclick="window.location = 'http://www.domain.com/submit?url=' + encodeURIComponent(window.location); return false; + 'title=' + SOMETHING + 'body=' + SOMETHING'"> Share This </a>

Zumindest glaube ich so. Ich bin nicht 100% sicher, ich habe die + 's und ‚‘ s an der richtigen Stelle bekam.

War es hilfreich?

Lösung

Ich glaube, Sie wollen document.title . ausgewählten Text zu bekommen ist ein wenig komplizierter, vor allem, wenn Sie IE unterstützen wollen. DOM-Standard ist window.getSelection aber für IE Sie zu verwirren haben um mit < a href = "http://msdn.microsoft.com/en-us/library/ms533041%28VS.85%29.aspx" rel = "nofollow noreferrer"> reicht - ich nicht, wenn die Dinge überprüft haben haben in IE8 verbessert.

Auch frage ich gemeint, wo wird die Share-Taste? Wenn es in der Seite ist dann auf die Schaltfläche klicken, wird der Text, um die Auswahl, die ausgewählt wird.

Andere Tipps

Es gibt mehr Möglichkeiten, um den ausgewählten Text zu bekommen, und verschiedenen Browser implementieren unterschiedliche:

Zunächst gibt es document.getSelection(), die den markierten Text als String zurückgibt. Dann gibt es window.getSelection(), die eine Auswahl Objekt zurück. Um den Rohtext zu erhalten, verwenden seine toString() Methode. Der IE Weg, um den Text des Erhaltens verwendet Bereiche, dh document.selection.createRange().text.

Ich würde die Verwendung einer Wrapper-Funktion vorschlägt document.getSelection() verfügbar für alle Browser zu machen, die alle zuvor beschriebenen Methoden unterstützen:

if(typeof document.getSelection === 'undefined') {
    document.getSelection =
        window.getSelection ? function() {
            return window.getSelection().toString();
        } :
        document.selection ? function() {
            return document.selection.createRange().text;
        } :
        null;
}

Als Randbemerkung:. Sie sollten location.href gesetzt (und location nicht) an die Adresse des Dokuments ändern

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top