| var mutationObserver, intersectionObserver, options; |
| |
| function mutationCallback(mutationList, observer) { |
| mutationList.forEach((mutation) => { |
| if (mutation.type == "childList") { |
| mutation.addedNodes.forEach(function (node) { |
| if (options.list && (typeof node.classList !== "undefined") && node.classList.contains("view-more-button-container")) { |
| intersectionObserver.observe(node.querySelector(".view-more-button")); |
| } |
| |
| if (options.thread && (typeof node.classList !== "undefined") && node.classList.contains("load-more-bar")) { |
| intersectionObserver.observe(node.querySelector(".load-more-button")); |
| } |
| }); |
| } |
| }); |
| } |
| |
| function intersectionCallback(entries, observer) { |
| entries.forEach(entry => { |
| if (entry.isIntersecting) { |
| entry.target.click(); |
| } |
| }); |
| }; |
| |
| var observerOptions = { |
| childList: true, |
| attributes: true, |
| subtree: true |
| } |
| |
| var intersectionOptions = { |
| root: document.querySelector('.scrollable-content'), |
| rootMargin: '0px', |
| threshold: 1.0 |
| } |
| |
| chrome.storage.sync.get(null, function(items) { |
| options = items; |
| |
| mutationObserver = new MutationObserver(mutationCallback); |
| mutationObserver.observe(document.querySelector(".scrollable-content"), observerOptions); |
| |
| intersectionObserver = new IntersectionObserver(intersectionCallback, intersectionOptions); |
| }); |