Comment puis-je obtenir ce & # 8220; Share # 8221; bouton pour saisir le titre HTML actuel de l'URL en plus de l'URL?

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

Question

Je suis un novice du javascript qui tente de créer un bouton de partage de base en tant que projet d’apprentissage. Je suis un peu perplexe sur un aspect. Bien que je puisse saisir l'URL de la page en cours et la transmettre à l'URL préremplissant le formulaire de partage, je ne sais pas comment saisir le titre HTML.

Voici ce que j'ai jusqu'à présent:

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

Qu'est-ce que j'ajoute à la section onclick pour obtenir également le titre de la page actuelle? Quoi que ce soit, il sera passé sous la forme " title = " dans l'URL.

Bonus: puis-je ajouter quelque chose pour envoyer du texte en surbrillance à partir de la page actuelle? Cela irait dans l'URL sous la forme " body = "

Je cherche donc à remplir ces blancs:

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

Au moins je le pense. Je ne suis pas sûr à 100% que j'ai le + et le s au bon endroit.

Était-ce utile?

La solution

Je pense que vous souhaitez document.title . Obtenir le texte sélectionné est un peu plus compliqué, surtout si vous voulez supporter IE. La norme DOM est window.getSelection , mais pour IE, vous devez manipuler < a href = "http://msdn.microsoft.com/en-us/library/ms533041%28VS.85%29.aspx" rel = "nofollow noreferrer"> plages - Je n'ai pas vérifié si rien ne se passait. se sont améliorés dans IE8.

Je voulais également demander: où sera le bouton de partage? Si vous vous trouvez dans la page, cliquez sur le bouton pour désélectionner le texte sélectionné.

Autres conseils

Il existe plusieurs façons d'obtenir le texte sélectionné, et différents navigateurs implémentent différents:

Tout d'abord, il y a document.getSelection () , qui renvoie le texte sélectionné sous forme de chaîne. Ensuite, il y a window.getSelection () , qui retournera un objet selection. Pour obtenir le texte brut, utilisez sa méthode toString () . Pour obtenir le texte, IE utilise des plages, par exemple document.selection.createRange (). Text .

Je suggérerais d'utiliser une fonction wrapper pour rendre document.getSelection () disponible pour tous les navigateurs prenant en charge l'une des méthodes mentionnées ci-dessus:

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

Remarque: vous devez définir location.href (et non emplacement ) pour modifier l'adresse du document.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top