Как мне заставить эту кнопку “Поделиться” отображать HTML-заголовок текущего URL-адреса в дополнение к URL-адресу?

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

Вопрос

Я новичок в javascript, пытающийся создать базовую кнопку "Поделиться" в качестве учебного проекта.Я немного озадачен одним аспектом.Хотя я могу получить URL текущей страницы и передать его в URL, который предварительно заполняет форму общего доступа, я не уверен, как получить html-заголовок.

Вот что у меня есть до сих пор:

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

Что мне добавить в раздел onclick, чтобы также получить заголовок текущей страницы?Что бы это ни было, оно будет передано как "title=" в URL-адресе.

Бонус:Есть ли что-нибудь, что я могу добавить для отправки выделенного текста с текущей страницы?Это было бы указано в URL как "body=".

Итак, я хочу заполнить эти пробелы:

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

По крайней мере, я так думаю.Я не уверен на 100%, что расставил + и "s в нужном месте.

Это было полезно?

Решение

Я думаю, ты хочешь документ.название.Получение выделенного текста немного сложнее, особенно если вы хотите поддерживать IE.Стандарт DOM - это window.Получает выбор но для IE вам придется повозиться с диапазоны - Я не проверял, улучшилась ли ситуация в IE8.

Также я хотел спросить, где будет кнопка "Поделиться"?Если это есть на странице, то нажатие на кнопку отменит выделение выделенного текста.

Другие советы

Существует несколько способов получить выделенный текст, и разные браузеры реализуют разные из них:

Во-первых, есть document.getSelection(), который возвращает выделенный текст в виде строки.Тогда, есть window.getSelection(), который вернет объект выделения.Чтобы получить необработанный текст, используйте его toString() способ.Способ получения текста в IE использует диапазоны, т.е. document.selection.createRange().text.

Я бы предложил использовать функцию-оболочку, чтобы сделать document.getSelection() доступно для всех браузеров, которые поддерживают любой из методов, упомянутых выше:

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

В качестве дополнительного примечания:Вы должны установить location.href (и не location), чтобы изменить адрес документа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top