Support for scrolling to another post in the iframe; more complicated than you'd think!

This commit is contained in:
Robin Ward
2014-01-03 14:45:22 -05:00
parent 2a79ed97ed
commit c762e3c4b1
3 changed files with 62 additions and 6 deletions

View File

@ -11,6 +11,26 @@
iframe.scrolling = "no";
comments.appendChild(iframe);
// Thanks http://amendsoft-javascript.blogspot.ca/2010/04/find-x-and-y-coordinate-of-html-control.html
function findPosY(obj)
{
var top = 0;
if(obj.offsetParent)
{
while(1)
{
top += obj.offsetTop;
if(!obj.offsetParent)
break;
obj = obj.offsetParent;
}
}
else if(obj.y)
{
top += obj.y;
}
return top;
}
function postMessageReceived(e) {
if (!e) { return; }
@ -20,6 +40,12 @@
if (e.data.type === 'discourse-resize' && e.data.height) {
iframe.height = e.data.height + "px";
}
if (e.data.type === 'discourse-scroll' && e.data.top) {
// find iframe offset
var destY = findPosY(iframe) + e.data.top;
window.scrollTo(0, destY);
}
}
}
window.addEventListener('message', postMessageReceived, false);