Как мне заставить эту кнопку “Поделиться” отображать HTML-заголовок текущего URL-адреса в дополнение к URL-адресу?
-
20-08-2019 - |
Вопрос
Я новичок в 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
), чтобы изменить адрес документа.