2009-06-25 2 views
1

Ich bin ein Javascript-Neuling, der versucht, einen grundlegenden Anteilknopf als ein Lernprojekt zu bauen. Ich bin ein bisschen über einen Aspekt ratlos. Während ich die URL der aktuellen Seite abrufen und diese an die URL weitergeben kann, die das Freigabeformular vorab auffüllt, bin ich mir nicht sicher, wie ich den HTML-Titel erfassen soll.Wie bekomme ich diese Schaltfläche "Teilen", um den HTML-Titel der aktuellen URL zusätzlich zur URL zu erfassen?

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 füge ich an den Onclick Abschnitt als auch der aktuellen Seite Titel zu bekommen? Was auch immer es ist, würde als "title =" in der URL übergeben werden.

Bonus: Gibt es etwas, das ich hinzufügen kann, um einen markierten Text von der aktuellen Seite zu senden? Das wäre in der URL gehen als „body =“

Also in diesen Lücken zu füllen Ich suche nach:

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

Mindestens ich denke schon. Ich bin mir nicht 100% ig sicher, dass ich die + und s am richtigen Ort habe.

+1

Keine Antwort, aber Sie sollten wissen, dass der Internet Explorer die Länge einer URL begrenzt, nach der er suchen kann. Dieses Limit ist 2048 und wenn der URL + Titel mehr als das ist, würde ein Trimmen stattfinden. –

Antwort

2

Ich denke, Sie wollen document.title. Selektierten Text zu bekommen ist etwas komplizierter, vor allem, wenn Sie IE unterstützen wollen. DOM-Standard ist window.getSelection, aber für IE müssen Sie mit ranges herumspielen - ich habe nicht überprüft, ob sich die Dinge in IE8 verbessert haben.

Auch ich wollte fragen, wo wird der Share-Button sein? Wenn es auf der Seite ist, wird durch Klicken auf die Schaltfläche der ausgewählte Text entfernt.

+0

Dies wäre eine HTML-Schaltfläche, die jeder in seinen Blog einfügen kann, damit er sie an das Übermittlungsformular des generischen Digg-Clones "abgibt". Ich dachte, ein solcher Knopf wäre ein solides Lernprojekt. – bflora2

+0

OK, dann denke ich, es würde ein Problem mit der Abwahl des Textes geben, wenn der Benutzer auf die Schaltfläche klickt. Sie können etwas ausarbeiten, indem Sie ein angrenzendes Textelement finden und dieses auswählen, aber möglicherweise müssen Sie verschiedene Schaltflächen für verschiedene Arten von Blogs implementieren. Es könnte funktionieren, wenn Sie es als Bookmarklet statt als Schaltfläche implementiert. – robertc

0

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

Zunächst gibt es document.getSelection(), die den markierten Text als String zurückgibt. Dann gibt es window.getSelection(), die ein Auswahlobjekt zurückgeben wird. Verwenden Sie die toString() Methode, um den unverarbeiteten Text zu erhalten. Der IE-Weg, den Text zu erhalten, verwendet Bereiche, dh document.selection.createRange().text.

I Verwendung einer Wrapper-Funktion würde vorschlagen zu document.getSelection() für alle Browser zur Verfügung zu stellen, 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 sollen location.href gesetzt (und nicht location) um die Adresse des Dokuments zu ändern.

Verwandte Themen