¿Cómo consigo esto & # 8220; Compartir # 8221; botón para tomar el título HTML actual de la URL además de la URL?

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

Pregunta

Soy un novato en JavaScript que intenta crear un botón básico para compartir como proyecto de aprendizaje. Estoy un poco perplejo por un aspecto. Si bien puedo obtener la URL de la página actual y pasarla a la URL que rellena el formulario de compartir, no estoy seguro de cómo obtener el título html.

Esto es lo que tengo hasta ahora:

<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é agrego a la sección onclick para obtener también el título de la página actual? Sea lo que sea, se pasará como " title = " en la URL.

Bonificación: ¿Hay algo que pueda agregar para enviar un texto resaltado de la página actual? Eso iría en la URL como " body = "

Así que estoy buscando completar estos espacios en blanco:

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

Al menos eso creo. No estoy 100% seguro de tener los + 'y' 'en el lugar correcto.

¿Fue útil?

Solución

Creo que quieres document.title . Obtener texto seleccionado es un poco más complicado, especialmente si desea admitir IE. El estándar DOM es window.getSelection pero para IE tiene que jugar con < a href = "http://msdn.microsoft.com/en-us/library/ms533041%28VS.85%29.aspx" rel = "nofollow noreferrer"> rangos - No he verificado si las cosas han mejorado en IE8.

También quise preguntar, ¿dónde estará el botón de compartir? Si está en la página, al hacer clic en el botón, se anulará la selección del texto seleccionado.

Otros consejos

Hay varias formas de obtener el texto seleccionado, y diferentes navegadores implementan diferentes:

Primero, hay document.getSelection () , que devuelve el texto seleccionado como una cadena. Luego, está window.getSelection () , que devolverá un objeto de selección. Para obtener el texto sin formato, use su método toString () . La forma IE de obtener el texto utiliza rangos, es decir, document.selection.createRange (). Text .

Sugeriría el uso de una función de envoltura para hacer que document.getSelection () esté disponible para todos los navegadores que admitan cualquiera de los métodos mencionados anteriormente:

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

Como nota al margen: debe configurar location.href (y no location ) para cambiar la dirección del documento.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top