Como faço para obter este botão “Share” para agarrar o título HTML URL atual, além de URL?
-
20-08-2019 - |
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.
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