jschan - Anonymous imageboard software. Classic look, modern features and feel. Works without JavaScript and supports Tor, I2P, Lokinet, etc.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

55 lines
1.6 KiB

window.addEventListener('DOMContentLoaded', (event) => {
5 years ago
const links = document.getElementsByClassName('post-quoters');
const messageBox = document.getElementById('message');
5 years ago
const addQuote = function(number) {
window.location.hash = 'postform'; //open postform
5 years ago
messageBox.value += `>>${number}\n`;
messageBox.scrollTop = messageBox.scrollHeight;
messageBox.focus();
messageBox.setSelectionRange(messageBox.value.length, messageBox.value.length);
messageBox.dispatchEvent(new Event('input'));
const quotingPost = document.getElementById(number);
if (quotingPost) {
quotingPost.scrollIntoView();
}
5 years ago
}
const quote = function(e) {
e.preventDefault();
5 years ago
const quoteNum = this.textContent.replace('[Reply]', '').split(' ')[0].trim();
if (isThread) {
addQuote(quoteNum);
} else {
setLocalStorage('clickedQuote', quoteNum);
window.location = this.firstChild.href.replace(/#postform$/, '#'+quoteNum);
}
};
//on loading page after clicking quote
if (isThread) {
const quoteNum = localStorage.getItem('clickedQuote');
if (quoteNum != null) {
addQuote(quoteNum);
}
localStorage.removeItem('clickedQuote');
}
5 years ago
for (let i = 0; i < links.length; i++) {
links[i].addEventListener('click', quote, false);
}
window.addEventListener('addPost', function(e) {
if (e.detail.hover) {
return; //dont need to handle hovered posts for this
}
const post = e.detail.post;
const newlinks = post.getElementsByClassName('post-quoters');
for (let i = 0; i < newlinks.length; i++) {
newlinks[i].addEventListener('click', quote, false);
}
});
});