MediaWiki:Common.js: различия между версиями

Нет описания правки
Нет описания правки
 
(не показано 6 промежуточных версий этого же участника)
Строка 3: Строка 3:
}
}


const decodeCyrillic = (url) => {
const copyLink = document.querySelector('nav#p-tb ul #t-page-link')
  return url.replace(/%[0-9A-F]{2}/gi, (match) => {
    try {
      const char = decodeURIComponent(match)
      return /[\u0400-\u04FF]/.test(char) ? char : match
    } catch {
      return match
    }
  })
}
 
let copyLinkTimeout
let copyLinkTimeout
window.copyPageLink = () => {
if(copyLink) {
const copyLink = document.querySelector('nav#p-tb ul #t-page-link')
copyLink.addEventListener('click', e => {
if(copyLink) {
e.preventDefault()
copy(decodeCyrillic(window.document.location.href))
copy(decodeURI(window.document.location.href))
e.target.textContent = 'Ссылка скопирована!'
e.target.textContent = 'Ссылка скопирована!'
if(copyLinkTimeout !== undefined) clearTimeout(copyLinkTimeout)
if(copyLinkTimeout !== undefined) clearTimeout(copyLinkTimeout)
copyLinkTimeout = setTimeout(() => {
copyLinkTimeout = setTimeout(() => {
e.textContent = 'Скопировать ссылку'
e.target.textContent = 'Скопировать ссылку'
}, 3000)
}, 3000)
}
e.target.closest('a').blur()
return false
})
}
}