zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Javascript & Ajax
Seite neu laden Ajax - Firefox zeigt keinen Curserstand in input und textarea

Antwort
 
LinkBack Themen-Optionen Ansicht
  #11 (permalink)  
Alt 07.05.2008, 10:52
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 12.03.2007
Beiträge: 36
Sinclair befindet sich auf einem aufstrebenden Ast
Standard

mh, das funktioniert...

doch was mache ich dann, wenn

zum Beispiel "längere" Seiten offen sind, wie zum Beispiel

ActiveCheer - Medien suchen

Dann scrollt der div#layer nicht mit und es sind Teile der Seite sichtbar?
Mit Zitat antworten
Sponsored Links
  #12 (permalink)  
Alt 07.05.2008, 11:05
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 09.07.2004
Beiträge: 1.121
cgdesign befindet sich auf einem aufstrebenden Ast
Standard

Das ist genau das Problem, was all die AJAX-Boxen und Gallerien usw. haben, die mit einem Popup da immer aufgehen, egal welches Script das ist. Die haben das alle gleich gelöst: sie gaben dem layer einen feste Höhe und Breite durch Javascript mit, indem sie wohl die Bildschirmgröße und die Größe der Seite berechnet haben. Wie die das aber genau gemacht haben, weiß ich auch nicht, kann man aber sicherlich irgendwo nachschauen.

Habe mal nachgeschaut: Lightbox hat das so gemacht:
http://www.huddletogether.com/projec...js/lightbox.js

Code:
getPageSize: function() 
{
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
	if (self.innerHeight) {	// all except Explorer
		if(document.documentElement.clientWidth){
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}

	return [pageWidth,pageHeight];
}
Und dann haben sie nur noch dem overlay die richtige Höhe und Breite mitgegeben:
var arrayPageSize = this.getPageSize();
... width: arrayPageSize[0] + 'px', height: arrayPageSize[1] + 'px'

Das ist aber mit Prototype gemacht, von daher kannst du es nicht 1 zu 1 übernehmen.

Firefox hat diesen Bug übrigens schon seit Jahren: https://bugzilla.mozilla.org/show_bug.cgi?id=167801
Man kann nur hoffen, dass sie diesen im FF3 beheben werden.

Ansonsten würde dein Beispiel mit position:fixed nicht ohne weiteres im IE funktionieren. Da müsste dann ein Cocktail aus bizarem CSS und Javascript her und ob das dann noch überall gleich aussieht, bezweifel ich jetzt schon, ohne es getestet zu haben. Da ist die Javascript-Lösung nun mal noch die Beste.

Geändert von cgdesign (07.05.2008 um 11:25 Uhr)
Mit Zitat antworten
Sponsored Links
  #13 (permalink)  
Alt 07.05.2008, 11:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 12.03.2007
Beiträge: 36
Sinclair befindet sich auf einem aufstrebenden Ast
Standard

ich habe mal nun selbst etwas herumgetüfftelt - ich habe den einfachen Befehl gefunden
Code:
window.document.body.offsetHeight
bei "längeren" Seiten klappt es im Firefox und auch im IE 7. Ich will gleich mal sehen, was bei kurzen seiten passiert. Sonst muss ich da noch mit clientHight arbeiten.

Danach will ich mal gucken, was im ie6 passiert und eben auch im Safari. Vielleicht klappt es ja so...
Mit Zitat antworten
  #14 (permalink)  
Alt 07.05.2008, 11:54
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 09.07.2004
Beiträge: 1.121
cgdesign befindet sich auf einem aufstrebenden Ast
Standard

position:fixed wird schon mal nicht im IE6 gehen, ansonsten sieht es doch schon mal ganz gut aus.
Mit Zitat antworten
  #15 (permalink)  
Alt 07.05.2008, 12:07
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 12.03.2007
Beiträge: 36
Sinclair befindet sich auf einem aufstrebenden Ast
Standard

für den IE6 habe ich eine spezielle css. Muß nur nachher mal testen, ob ich die noch ändern muß nach den ganzen änderungen, die ich gemacht habe

habe nun übrigens folgende Funktion für die Höhe:

Code:
function pageHight() {
	if (window.innerHeight > window.document.body.offsetHeight) {
		var ph = window.innerHeight;
	} else {
		var ph = window.document.body.offsetHeight;
	}
	if (ph < document.documentElement.clientHeight) {
		ph = document.documentElement.clientHeight;
	}
	return ph;
}
Mit Zitat antworten
Antwort

Stichwörter
ajax, curserstand, firefox, input, textarea

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Image-Button (Input) im IE vs. Firefox Schockwelle (X)HTML 5 16.06.2010 14:10
Input Felder, IE und Firefox zeigen Unterschiede priscylla CSS 2 21.01.2010 09:57
Kein line-height auf input in Firefox 3? o.dey CSS 4 09.01.2009 14:57
input type hidden wird im firefox angezeigt psycho_dmr CSS 1 12.09.2008 14:19
input und textarea gleich breit andre_koller (X)HTML 6 14.02.2007 15:01


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:01 Uhr.