Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.javascript > #19603

Re: iframe scrolled by how much

Date 2013-05-03 08:32 +1000
From Andrew Poulos <ap_prog@hotmail.com>
Newsgroups comp.lang.javascript
Subject Re: iframe scrolled by how much
References <HqidnRXFEeGYgh_MnZ2dnUVZ_gSdnZ2d@westnet.com.au> <XnsA1B48E1A8BC9Ceejj99@194.109.133.133> <7b2dnVaGSOsFwx_MnZ2dnUVZ_vKdnZ2d@westnet.com.au> <XnsA1B4969FD1484eejj99@194.109.133.133>
Message-ID <gu2dne-MrPUMdB_MnZ2dnUVZ_rydnZ2d@westnet.com.au> (permalink)

Show all headers | View raw


On 2/05/2013 10:48 PM, Evertjan. wrote:
> Andrew Poulos wrote on 02 mei 2013 in comp.lang.javascript:
>
>> 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

Both these
document.gEBTN("iframe")[0].contentWindow.document.body
document.gEBTN("iframe")[0].contentWindow.document.documentElement
seem to work in their respective browsers.

> I could test that out, but so could you, methinks.
>
> perhaps you could try to add here /***/:

Thanks I'm getting a value consistently now but I'm sure of the approach 
I'm using.

> frm = (frm.documentElement || frm);

What I'm doing now is:

var frm = document.getElementsByTagName("iframe")[0];
frm = (frm.contentWindow || frm.contentDocument).document;

window.alert(frm.documentElement.scrollLeft || frm.body.scrollLeft);

Andrew Poulos

Back to comp.lang.javascript | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

iframe scrolled by how much Andrew Poulos <ap_prog@hotmail.com> - 2013-05-02 18:08 +1000
  Re: iframe scrolled by how much "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-05-02 13:58 +0200
    Re: iframe scrolled by how much Andrew Poulos <ap_prog@hotmail.com> - 2013-05-02 22:39 +1000
      Re: iframe scrolled by how much "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-05-02 14:48 +0200
        Re: iframe scrolled by how much Andrew Poulos <ap_prog@hotmail.com> - 2013-05-03 08:32 +1000
          Re: iframe scrolled by how much "Evertjan." <exxjxw.hannivoort@inter.nl.net> - 2013-05-03 08:38 +0200
      Re: iframe scrolled by how much Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-05-02 21:20 +0200

csiph-web