Pergunta

Eu sou um novato javascript tentando construir um botão básico participação como um projeto de aprendizagem. Estou um pouco confuso a respeito de um aspecto. Embora eu possa pegar a URL da página atual e passar isso para o url que prepopulates a forma ação, não tenho certeza como agarrar o título html.

Aqui está o que eu tenho que agora:

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

O que faço para adicionar à seção onclick para obter o título da página atual, bem como? Seja o que for que ser passado como "title =" no URL.

Bonus: Existe algo que eu possa adicionar a enviar ao longo de algum texto destacado da página atual? Isso iria na URL como "body ="

Então, eu estou olhando para preencher estes espaços em branco:

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

Pelo menos eu penso assim. Não estou 100% certo que eu tenho o + 's e '' s no lugar certo.

Foi útil?

Solução

Eu acho que você quer document.title . Obtendo texto selecionado é um pouco mais complicado, especialmente se você quiser apoiar IE. padrão DOM é window.getSelection mas para IE você tem que mexer com < a href = "http://msdn.microsoft.com/en-us/library/ms533041%28VS.85%29.aspx" rel = "nofollow noreferrer"> faixas - Eu não verificado se as coisas melhoraram em IE8.

Também eu queria perguntar, onde vai o botão de compartilhamento ser? Se é na página, em seguida, clicar no botão vai para de-selecionar o texto que é selecionado.

Outras dicas

Existem várias maneiras de obter o texto selecionado, e diferentes navegadores implementar os diferentes:

Primeiro, há document.getSelection(), que retorna o texto selecionado como uma string. Então, há window.getSelection(), que irá retornar um objeto de seleção. Para obter o texto cru, usar seu método toString(). A maneira como o IE de obter os intervalos usa texto, ou seja, document.selection.createRange().text.

Eu sugiro o uso de uma função de wrapper para fazer document.getSelection() disponível para todos os navegadores que suportam qualquer um dos métodos mencionados acima:

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

Como uma nota lateral:. Você deve definir location.href (e não location) para alterar o endereço do documento

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top