Embed Tweets in an iframe - https://tf.rita.moe

show: keep sending our scrollHeight if it changes, for 10 seconds

should fix #1

Changed files
+16 -26
+16 -26
show.html
···
else
window.attachEvent("onmessage", saveCaller);
-
function onload() {
-
if (arguments.callee.done)
-
return;
-
arguments.callee.done = true;
-
if (_timer)
-
clearInterval(_timer);
-
-
loaded = true;
-
if (caller)
-
sendResponse();
-
}
-
if (document.addEventListener)
-
document.addEventListener("DOMContentLoaded", onload, false);
-
else if (/WebKit/i.test(navigator.userAgent)) {
-
_timer = setInterval(function() {
-
if (/loaded|complete/.test(document.readyState))
-
onload();
-
}, 10);
}
-
else
-
window.onload = onload;
function sendResponse() {
-
if (caller.data.query == "height") {
-
setTimeout(function() {
-
caller.source.postMessage({ element: caller.data.element,
-
height: document.body.scrollHeight + 20 }, caller.origin);
-
}, 500);
-
}
};
</script>
</html>
···
else
window.attachEvent("onmessage", saveCaller);
+
var lastHeight = 0;
+
var loadedTime = window.performance ? window.performance.now() : 0;
+
function checkHeight() {
+
if (document.body.scrollHeight != lastHeight && caller) {
+
lastHeight = document.body.scrollHeight;
+
sendResponse();
+
}
+
/* give up after a while to save cpu */
+
if (window.performance &&
+
(window.performance.now() - loadedTime > (10 * 1000)))
+
return;
+
window.requestAnimationFrame(checkHeight);
}
+
window.requestAnimationFrame(checkHeight);
function sendResponse() {
+
if (caller.data.query == "height")
+
caller.source.postMessage({ element: caller.data.element,
+
height: document.body.scrollHeight + 20 }, caller.origin);
};
</script>
</html>