add comments.js
This commit is contained in:
20
youtube/static/js/comments.js
Normal file
20
youtube/static/js/comments.js
Normal file
@@ -0,0 +1,20 @@
|
||||
function onClickReplies(e) {
|
||||
var details = e.target.parentElement;
|
||||
// e.preventDefault();
|
||||
console.log("loading replies ..");
|
||||
doXhr(details.getAttribute("src") + "&slim=1", (html) => {
|
||||
var div = details.querySelector(".comment_page");
|
||||
div.innerHTML = html;
|
||||
});
|
||||
details.removeEventListener('click', onClickReplies);
|
||||
}
|
||||
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
QA("details.replies").forEach(details => {
|
||||
details.addEventListener('click', onClickReplies);
|
||||
details.addEventListener('auxclick', (e) => {
|
||||
if (e.target.parentElement !== details) return;
|
||||
if (e.button == 1) window.open(details.getAttribute("src"));
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,5 @@
|
||||
Q = document.querySelector.bind(document);
|
||||
QA = document.querySelectorAll.bind(document);
|
||||
function text(msg) { return document.createTextNode(msg); }
|
||||
function clearNode(node) { while (node.firstChild) node.removeChild(node.firstChild); }
|
||||
function toTimestamp(seconds) {
|
||||
@@ -36,6 +37,15 @@ function getDefaultTranscriptTrackIdx() {
|
||||
return textTracks.length - 1;
|
||||
}
|
||||
|
||||
function doXhr(url, callback=null) {
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.open("GET", url);
|
||||
xhr.onload = (e) => {callback(e.currentTarget.response)};
|
||||
xhr.send();
|
||||
return xhr;
|
||||
}
|
||||
|
||||
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
cur_track_idx = getDefaultTranscriptTrackIdx();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user