Is it possible not to push unnecessary state when clicking an <a> element?
Mantenedores costumam responder em até 8 dias
Avaliação
- Dificuldade
- 3/5
- Tempo estimado
- 1-2 dias
- Facilidade para iniciantes
- 45/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- javascript
Direção de pesquisa
Comece localizando o código-fonte JavaScript que contém e.prototype.onchange e leia o tratamento de click e popstate. Reproduza os casos de anchor/history descritos na issue e, em seguida, verifique se a navegação para o mesmo local não faz nada e se a navegação para a URL anterior do histórico se comporta conforme proposto.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Feature request
Problem or desire
I click an element which has the href just like the location.href when setting routerMode to "history", and then it pushes a new state which is not necessary.
It might be better to use history.back() than history.pushState() when clicking an element which has the href just like the location.href of the previous page in session history.
Proposal
Do nothing when clicking an element which has the href just like the location.href.
Use history.back() when clicking an element which has the href just like the location.href of the previous page in session history.
Implementation
Just change the onchange function to something like this:
e.prototype.onchange = function (i) {
void 0 === i &&
(i = d),
p(
'click',
function (e) {
var n = 'A' === e.target.tagName ? e.target : e.target.parentNode;
n &&
'A' === n.tagName &&
!g(n.href) &&
(
e.preventDefault(),
n = n.href,
n === location.href ? 1 : //Add
n === hrefPre ? window.history.back() : //Add(hrefPre is used to record the href before)
window.history.pushState({
key: n
}, '', n),
i({
event: e,
source: 'navigate'
})
)
}
),
p('popstate', function (e) {
i({
event: e,
source: 'history'
})
})
}
- Linguagem predominante
- JavaScript
- Estrelas
- 31.5k
- Forks
- 5.8k
- Merge médio
- 7d 18h
- PRs com merge (30d)
- 9
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de docsifyjs/docsify
-
Query parameter values are truncated at a second equals signTalvez já em andamento @xu91102 assumiu há 24 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
Mantenedores costumam responder em até 8 dias
-
Bullet points beginning with inline math: subsequent text formatting not recognised correctlyAbertabug Triage
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 8 dias
-
Cached AJAX responses lose status metadata exposed through vm.route.responseTalvez já em andamento @xu91102 assumiu há 24 dias. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 8 dias
-
In the Edge browser, the character `{docsify-updated}` is not replacedTalvez livre de novo @AmanUllah687 assumiu há 77 dias e não há nenhum pull request aberto. Abertawait for information
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
docsifyjs/docsify#2681 · 11 comentários ·
Mantenedores costumam responder em até 8 dias
-
Nested/Recursive includesAbertafeature request Triage
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 38/100
docsifyjs/docsify#2643 · 5 comentários ·
Mantenedores costumam responder em até 8 dias
Todas as issues de docsifyjs/docsify
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 79/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
highcharts/highcharts-react#594 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
Mantenedores costumam responder em até 1 dia