Eigenschaft scrollHeight in FireFox

8

Ich arbeite an einer Funktion, um zu erkennen, ob Text in einem DIV-Element überläuft. In diesem Zusammenhang habe ich eine Funktion, die sowohl in Chrome als auch in IE funktioniert und die scrollHeight des Elements mit den clientHeight-Attributen vergleicht.

In FireFox geben jedoch sowohl Attribute (als auch offsetHeight) immer die gleiche Zahl an, die die Höhe des div-Elements ist.

Ich bekomme genaue Ergebnisse von der scrollHeight-Eigenschaft, wenn ich dem div-Stil 'overflow: auto' hinzufüge. Aber das Anzeigen der Bildlaufleiste ist keine akzeptable Lösung für das Projekt, an dem ich gerade arbeite.

Irgendwelche Vorschläge?

    
Linus 06.12.2010, 19:07
quelle

3 Antworten

12
___ qstnhdr ___ Eigenschaft scrollHeight in FireFox ___ tag123javascript ___ JavaScript (nicht zu verwechseln mit Java) ist eine dynamische Sprache mit mehreren Paradigmen auf hoher Ebene, die sowohl für das clientseitige als auch für das serverseitige Scripting verwendet wird. Verwenden Sie dieses Tag für Fragen zu ECMAScript und seinen verschiedenen Dialekten / Implementierungen (außer ActionScript und Google-Apps-Script). ___ answer23564280 ___

In der aktuellen Firefox-Version ist das kein Problem mehr, da die scrollHeight -Eigenschaft auch ohne den hier gezeigten overflow="scroll" -Trick funktioniert. Aber in einigen alten Versionen passiert es immer noch so ...

vielen Dank @thejh, Ihr Hinweis war sehr nützlich für mich!

    
___ tag123html ___ HTML (Hyper Text Markup Language) ist die Standard-Auszeichnungssprache, die zum Strukturieren von Webseiten und zum Formatieren von Inhalt verwendet wird. HTML beschreibt die Struktur einer Website semantisch zusammen mit Hinweisen für die Präsentation, wodurch sie eine Markup-Sprache statt einer Programmiersprache wird. Die neueste Revision der HTML-Spezifikation ist HTML5.2. ___ qstntxt ___

Ich arbeite an einer Funktion, um zu erkennen, ob Text in einem DIV-Element überläuft. In diesem Zusammenhang habe ich eine Funktion, die sowohl in Chrome als auch in IE funktioniert und die scrollHeight des Elements mit den clientHeight-Attributen vergleicht.

In FireFox geben jedoch sowohl Attribute (als auch offsetHeight) immer die gleiche Zahl an, die die Höhe des div-Elements ist.

Ich bekomme genaue Ergebnisse von der scrollHeight-Eigenschaft, wenn ich dem div-Stil 'overflow: auto' hinzufüge. Aber das Anzeigen der Bildlaufleiste ist keine akzeptable Lösung für das Projekt, an dem ich gerade arbeite.

Irgendwelche Vorschläge?

    
___ answer11164775 ___

Kartikaya Gupta erklärt das Verhalten von Firefox in einem Blogbeitrag in den scrollWidth / scrollHeight-Eigenschaften .

>

Die Empfehlung zu erkennen, ob ein Element überläuft, besteht darin, es scrollbar zu machen und %code% / %code% vorübergehend auf 1 zu setzen. Wenn mindestens %code% oder %code% seinen Wert behält, würde das Element überlaufen.
Um zu verhindern, dass die Prüfung für den Benutzer sichtbar ist, möchten Sie möglicherweise die Überprüfung in einem geklonten Element durchführen, das in der Negativ oben oder links vom Ansichtsfenster.

    
___ antwort4370047 ___

Das ist dokumentiertes Verhalten:

  

Wenn der Inhalt eines Elements dies nicht tut   erzeugt dann eine vertikale Bildlaufleiste   Seine Eigenschaft scrollHeight ist gleich   seine Eigenschaft clientHeight.

Ссылка

Ich weiß, dass es nicht sauber ist, aber könntest du so etwas machen?

%Vor%

Der Benutzer kann das nicht sehen, weil die Seite nur neu gezeichnet wird, wenn gerade kein Javascript läuft.

    
___
thejh 06.12.2010, 19:15
quelle
3

Kartikaya Gupta erklärt das Verhalten von Firefox in einem Blogbeitrag in den scrollWidth / scrollHeight-Eigenschaften .

>

Die Empfehlung zu erkennen, ob ein Element überläuft, besteht darin, es scrollbar zu machen und scrollLeft / scrollTop vorübergehend auf 1 zu setzen. Wenn mindestens scrollWidth oder scrollHeight seinen Wert behält, würde das Element überlaufen.
Um zu verhindern, dass die Prüfung für den Benutzer sichtbar ist, möchten Sie möglicherweise die Überprüfung in einem geklonten Element durchführen, das in der Negativ oben oder links vom Ansichtsfenster.

    
Augustus Kling 22.06.2012 22:10
quelle
0

In der aktuellen Firefox-Version ist das kein Problem mehr, da die scrollHeight -Eigenschaft auch ohne den hier gezeigten overflow="scroll" -Trick funktioniert. Aber in einigen alten Versionen passiert es immer noch so ...

vielen Dank @thejh, Ihr Hinweis war sehr nützlich für mich!

    
Hugo 09.05.2014 12:07
quelle

Tags und Links