Hoe kan ik het detecteren van een Schuifbalk aanwezigheid ( met behulp van Javascript in de HTML iFrame?

Hoe kan ik het detecteren van een Schuifbalk aanwezigheid ( met behulp van Javascript in de HTML iFrame ?

Heb ik al geprobeerd :

        var vHeight = 0;
        if (document.all) {
          if (document.documentElement) {
            vHeight = document.documentElement.clientHeight;
          } else {
            vHeight = document.body.clientHeight
          }
    } else {
      vHeight = window.innerHeight;
    }

    if (document.body.offsetHeight > vHeight) {
      //when theres a scrollbar
    }else{
      //when theres not a scrollbar
    }

En ik had ook geprobeerd :

           this.scrollLeft=1;
    if (this.scrollLeft>0) {
        //when theres a scrollbar
        this.scrollLeft=0;
        }else{
        //when theres not a scrollbar
        return false;
    }

Zonder succes..

Ik heb gezocht op de javascript objets op DOM Inspector, maar hebben niets gevonden.

Het Is mogelijk om het detecteren van een schuifbalk aanwezigheid in een iframe in javacscript ?


De iframe inhoud komt uit hetzelfde domein.

Geen succes tot nu toe..

de alt-tekst http://www.upvtp.com.br/file.php/1/help_key.jpg

InformationsquelleAutor Bonfocchi | 2009-03-25

 

6 Replies
  1. 9

    Gebruik van jQuery kan je vergelijken met het document hoogte, de scrollTop positie en de viewport hoogte, die misschien krijg je het antwoord dat je nodig hebt.

    Iets in de trant van:

    $(window).scroll(function(){
      if(isMyStuffScrolling()){
        //There is a scroll bar here!
      }
    }); 
    
    function isMyStuffScrolling() {
      var docHeight = $(document).height();
      var scroll    = $(window).height() + $(window).scrollTop();
      return (docHeight == scroll);
    } 
    • Dank u voor uw antwoord, maar je code alleen testen als ik probeer te verplaatsen van de schuifbalk. Ik wil om het te testen op het laden van de pagina.
    • Het spijt me, maar dit is niet de juiste oplossing. 🙁 Uw code daadwerkelijk controles, of het document is verschoven naar de bodem. Hier is een bewijs: jsfiddle.net/vvdb0292/2. Ik denk dat bobince het antwoord juist is.
  2. 42
    var root= document.compatMode=='BackCompat'? document.body : document.documentElement;
    var isVerticalScrollbar= root.scrollHeight>root.clientHeight;
    var isHorizontalScrollbar= root.scrollWidth>root.clientWidth;

    Deze detecteert of er sprake is van een moet voor een schuifbalk. Voor de standaard van iframes dit is hetzelfde als de vraag of er is een schuifbalk, maar als schuifbalken worden gedwongen aan of uit (met behulp van de ‘scrolling=”yes”/”no”‘ – attribuut in de ouder-document, of CSS ‘overflow: scroll/verborgen’ in de iframe-document), dan kan dit verschillen.

    • Dit moet het antwoord
    • Waarom doe je een test voor ‘BackCompat’ in plaats van alleen met behulp van de documentElement in alle compat-modi?
    • als je in de Quirks-Modus (IE5 compat) de top-level document schuifbalk op het body-element in plaats van html.
  3. 3
    $(window).scroll(function(){
      if(isMyStuffScrolling()){
    //scrolling
      }else{
    //not scrolling
    }
    }); 
    
    function isMyStuffScrolling() {
      var docHeight = $(document).height();
      var scroll    = $(window).height() ;//+ $(window).scrollTop();
      if(docHeight > scroll) return true;
      else return false;
    }

    verbeterd-een beetje veranderd van Jon ‘ s Winstanley code

  4. 1

    Ik denk niet dat dit kan worden gedaan als de iframe inhoud afkomstig is van een ander domein door JavaScript-beveiliging beperkingen.

    BEWERKEN:
    In dat geval, iets in de trant van het geven het een iframe name=’someframe” en id=’someframe2′ en vervolgens te vergelijken met frames[‘someframe’].document.lichaam.offsetWidth met document.getElementById(‘someframe2’).offsetWidth moet u het antwoord geven.

    • De iframe inhoud komt uit hetzelfde domein.
  5. 0

    Ik denk dat je tweede poging is op het juiste spoor. Maar in plaats van this, je moet proberen te schuiven/controleren van document.body.

  6. 0

    Ik vond dit werkt op elk element, ten minste op Chrome:

    hasVerticalScrollbar = (element.scrollHeight > element.offsetHeight)
            || 
    (element.scrollHeight > element.clientHeight

    Horizontale schuifbalken kan worden gedetecteerd hetzelfde met Width in plaats van Height.

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *