Come ottengo questo & # 8220; Condividi # 8221; pulsante per afferrare il titolo HTML dell'URL corrente oltre all'URL?

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

Domanda

Sono un novizio javascript che cerca di creare un pulsante di condivisione di base come progetto di apprendimento. Sono un po 'perplesso su un aspetto. Mentre posso prendere l'URL della pagina corrente e passarlo nell'URL che prepopola il modulo di condivisione, non sono sicuro di come prendere il titolo HTML.

Ecco cosa devo fare finora:

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

Cosa devo aggiungere alla sezione onclick per ottenere anche il titolo della pagina corrente? Qualunque cosa sia, verrà passata come " title = " nell'URL.

Bonus: c'è qualcosa che posso aggiungere per inviare un po 'di testo evidenziato dalla pagina corrente? Ciò andrebbe nell'URL come " body = "

Quindi sto cercando di riempire questi spazi vuoti:

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

Almeno io la penso così. Non sono sicuro al 100% di avere i segni + e 'nel posto giusto.

È stato utile?

Soluzione

Penso che tu voglia document.title . Ottenere il testo selezionato è un po 'più complicato, soprattutto se si desidera supportare IE. Lo standard DOM è window.getSelection ma per IE devi scherzare con < a href = "http://msdn.microsoft.com/en-us/library/ms533041%28VS.85%29.aspx" rel = "nofollow noreferrer"> intervalli - Non ho verificato se le cose sono migliorati in IE8.

Inoltre intendevo chiedere, dove sarà il pulsante di condivisione? Se è nella pagina, fare clic sul pulsante per deselezionare il testo selezionato.

Altri suggerimenti

Esistono diversi modi per ottenere il testo selezionato e diversi browser ne implementano diversi:

Innanzitutto, c'è document.getSelection () , che restituisce il testo selezionato come stringa. Quindi, c'è window.getSelection () , che restituirà un oggetto di selezione. Per ottenere il testo non elaborato, utilizzare il metodo toString () . Il modo IE di ottenere il testo utilizza intervalli, ad esempio document.selection.createRange (). Text .

Suggerirei l'uso di una funzione wrapper per rendere document.getSelection () disponibile per tutti i browser che supportano uno dei metodi sopra menzionati:

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

Come nota a margine: è necessario impostare location.href (e non location ) per modificare l'indirizzo del documento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top