This repository has been archived on 2024-07-22. You can view files and clone it, but cannot push or open issues or pull requests.
Zaimki/plugins/hash.js

34 lines
1.1 KiB
JavaScript
Raw Normal View History

export default {
methods: {
handleHash(namespace, callback, checkAnchor = true) {
if (!process.client || !window.location.hash) {
return;
}
const anchor = decodeURIComponent(window.location.hash.substr(1));
this.$nextTick(_ => {
const $anchor = document.getElementById(anchor);
if (checkAnchor && $anchor) {
$anchor.scrollIntoView();
} else if (!namespace) {
callback(anchor);
} else if (anchor.startsWith(namespace + '/')) {
callback(anchor.substring(namespace.length + 1));
}
});
},
setHash(namespace, value) {
if (!process.client) {
return;
}
history.pushState(
'',
document.title,
window.location.pathname + window.location.search
+ (value ? '#' + (namespace ? namespace + '/' + value : value) : '')
);
},
}
}