Как мне получить эту кнопку «Поделиться», чтобы получить заголовок текущего URL-адреса в дополнение к URL-адресу? - PullRequest
1 голос
/ 25 июня 2009

Я новичок в 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%, что получил «+» и «в» правильном месте.

Ответы [ 2 ]

2 голосов
/ 25 июня 2009

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

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

0 голосов
/ 25 июня 2009

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

Во-первых, есть 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), чтобы изменить адрес документа.

...