Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder1.news.weretis.net!news1.tnib.de!feed.news.tnib.de!news.tnib.de!feed.cnntp.org!news.cnntp.org!uucp.gnuu.de!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail Content-Type: text/plain; charset="UTF-8" Message-ID: <2454054.W8v1AkpiNS@PointedEars.de> From: Thomas 'PointedEars' Lahn Reply-To: Thomas 'PointedEars' Lahn Organization: PointedEars Software (PES) Date: Thu, 02 May 2013 21:20:53 +0200 User-Agent: KNode/4.8.5 Content-Transfer-Encoding: 8Bit X-Face: %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&. <7b2dnVaGSOsFwx_MnZ2dnUVZ_vKdnZ2d@westnet.com.au> MIME-Version: 1.0 Lines: 55 NNTP-Posting-Date: 02 May 2013 21:20:54 CEST NNTP-Posting-Host: 0743284d.newsspool3.arcor-online.net X-Trace: DXC=@Q1RA7H;NnRcHPTNZh_e7QMcF=Q^Z^V3X4Fo<]lROoRQ8kF On 2/05/2013 9:58 PM, Evertjan. wrote: >> Andrew Poulos wrote on 02 mei 2013 in comp.lang.javascript: >>> If I get a reference to an iframe using >>> var myfrm = document.getElementsByTagName("iframe")[0]; >>> how do I get the scrollLeft and Top of the iframe? >> >> function showScrollTop() { >> var frm = document.getElementsByTagName("iframe")[0]; >> frm = (frm.contentWindow || frm.contentDocument); >> frm = (frm.document || frm); >> >> alert('Top: ' + frm.body.scrollTop+'px'); >> alert('Left: ' + frm.body.scrollLeft+'px'); >> }; >> >> Works only in same domain, so also not local [without localhost ?]. > > To get IE9 to return anything but 0 I had to use documentElement: > window.alert('Top: ' + frm.documentElement.scrollTop + 'px'); > > Does it mean that the possible permutations are > > document.gEBTN("iframe")[0].contentWindow.document.body > document.gEBTN("iframe")[0].contentWindow.document.documentElement > document.gEBTN("iframe")[0].contentDocument.body > document.gEBTN("iframe")[0].contentDocument.documentElement > > ? Yes, if you cannot control the content of the iframe and so, which rendering mode will be used. However, it is easier to access the iframe context's WindowProxy object by name or index, using the “frames” collection: window.frames["myiframe"].document.body window.frames["myiframe"].document.documentElement window.frames[0].document.body window.frames[0].document.documentElement This referencing, which originates from “DOM Level 0”, is specified in HTML5 (CR): (The WindowProxy object appears to be underdefined, but one can see where this is going.) -- PointedEars Twitter: @PointedEars2 Please do not Cc: me. / Bitte keine Kopien per E-Mail.