Skip to content

Commit d10a982

Browse files
committed
Initial code commit.
1 parent 49fbb44 commit d10a982

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

source.js

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
var source = function(){
2+
var baseElement = document.getElementsByClassName('comic-table')[0];
3+
var containerElement = document.createElement('div');
4+
containerElement.className = 'infinite-scroll-container';
5+
baseElement.parentElement.insertBefore(containerElement, baseElement);
6+
baseElement.parentElement.removeChild(baseElement);
7+
containerElement.appendChild(baseElement);
8+
9+
var nextImageURLFN = function(element){
10+
var links = element.getElementsByTagName('a');
11+
if(links.length > 1){
12+
console.log('Too many links on latest element.');
13+
return null;
14+
} else if (links.length == 0){
15+
console.log('No links on latest element');
16+
return null;
17+
} else {
18+
var linkToReturn = links[0].href;
19+
links[0].setAttribute('old_href', linkToReturn);
20+
links[0].removeAttribute('href');
21+
return linkToReturn;
22+
}
23+
};
24+
25+
var nextPageRequest = new XMLHttpRequest();
26+
27+
var isLoadingNextImage = false;
28+
var mostRecentImageElement = baseElement;
29+
var nextImageURL = nextImageURLFN(mostRecentImageElement);
30+
console.log('Should have called the function thing for next url.');
31+
document.body.onscroll = function() {
32+
if(!isLoadingNextImage && mostRecentImageElement.getBoundingClientRect().bottom - window.scrollY <= 0.0){
33+
isLoadingNextImage = true;
34+
if(nextImageURL != null){
35+
console.log('Should load next image.!');
36+
nextPageRequest.open('GET',nextImageURL);
37+
nextPageRequest.send();
38+
} else {
39+
console.log('Want to load next image but no url!');
40+
}
41+
}
42+
}
43+
nextPageRequest.onload = function(){
44+
if(nextPageRequest.status != 200){
45+
console.log('Error retrieving page for url: '+nextImageURL);
46+
return;
47+
}
48+
var tempDom = document.createElement('div');
49+
tempDom.innerHTML = nextPageRequest.responseText;
50+
var nextComicPanel = tempDom.getElementsByClassName('comic-table')[0];
51+
nextComicPanel.parentElement.removeChild(nextComicPanel);
52+
containerElement.insertBefore(nextComicPanel, null);
53+
mostRecentImageElement = nextComicPanel;
54+
nextImageURL = nextImageURLFN(mostRecentImageElement);
55+
isLoadingNextImage = false;
56+
}
57+
58+
59+
return 'Injection complete.';
60+
};
61+
62+
source();

0 commit comments

Comments
 (0)