mirror of
https://github.com/hodgef/simple-keyboard.git
synced 2025-01-20 01:22:59 +08:00
33 lines
997 B
JavaScript
33 lines
997 B
JavaScript
// inner link(#foo) can not correctly scroll, because page has fixed header,
|
|
// so, I manually scroll.
|
|
(function(){
|
|
var matched = location.hash.match(/errorLines=([\d,]+)/);
|
|
if (matched) return;
|
|
|
|
function adjust() {
|
|
window.scrollBy(0, -55);
|
|
var el = document.querySelector('.inner-link-active');
|
|
if (el) el.classList.remove('inner-link-active');
|
|
|
|
// ``[ ] . ' " @`` are not valid in DOM id. so must escape these.
|
|
var id = location.hash.replace(/([\[\].'"@$])/g, '\\$1');
|
|
var el = document.querySelector(id);
|
|
if (el) el.classList.add('inner-link-active');
|
|
}
|
|
|
|
window.addEventListener('hashchange', adjust);
|
|
|
|
if (location.hash) {
|
|
setTimeout(adjust, 0);
|
|
}
|
|
})();
|
|
|
|
(function(){
|
|
var els = document.querySelectorAll('[href^="#"]');
|
|
var href = location.href.replace(/#.*$/, ''); // remove existed hash
|
|
for (var i = 0; i < els.length; i++) {
|
|
var el = els[i];
|
|
el.href = href + el.getAttribute('href'); // because el.href is absolute path
|
|
}
|
|
})();
|