xxxlalala: Probleme mit refresh im IE (trifft den anker nicht)

Hallo,

ich bin nicht besonders erfahren was html angeht und kann mir durch allgemeine (recht schlechte) Programmierkentnisse etwas php und javascript zusammenreimen, so das ich fuer meine hompages, mir dann aus irgendwelchen tutorials zusammensuche was ich brauche.
Beim erstellen meiner jetztigen seite stosse ich damit jedoch an meine grenzen, weshalb ich hier jetzt schreibe.
Die seite funktioniert in Firefox(aktulle version) wie gewuenscht, allerdings machen mir IE(8x) und chrome und safari (neuste versionen) probleme, also aeltere browser habe ich jetzt nicht getestet.
Hier die seite: http://www.steffenkraska.de/alt/

es ist so gedacht das der nutzer entweder auf das "v" oder auf "about"
klickt und zu dem jeweiligen anker gelangt.
Die 6 Bilder werden jeweils beim betreten der seite aus einem Ordner ausgelesen mit folgendem script:

  
<?  
$imglist='';  
$img_folder = "img/";  
  
mt_srand((double)microtime()*1000);  
  
$imgs = dir($img_folder);  
  
while ($file = $imgs->read()) {  
   if (eregi("gif", $file) || eregi("jpg", $file) || eregi("png", $file))  
     $imglist .= "$file ";  
  
 } closedir($imgs->handle);  
  
$imglist = explode(" ", $imglist);  
$no = sizeof($imglist)-2;  
?>  

und dann im div so ausgegeben :

  
  <?  
		$num_displayed = 6;  
		$k = 0;  
		while($k<$num_displayed)  
		{  
      		$random = mt_rand(0, $no);  
 	  		$image = $imglist[$random];  
			echo '<img src="'.$img_folder.$image.'" border="0" height="350px">';  
			$k++;  
			  
		}  
		echo str_repeat("&emsp;", 90);  
		?>  

Meine probleme sind nun folgende:
1.
Wenn ich im Internetexplorer auf den das "v" klicke welches neben den fotos ist und dazu gedacht ist die seite neu zu laden und zwar am anker #1. kommt der IE am anfang der Seite an.(wieso da gar nichts steht erklaere ich auch noch).
momentan sieht der link so aus :
<a href="javascript:location.reload()" style="font-weight:normal; color:#999999; text-decoration:none; " onMouseOver="this.style.cursor='pointer'">&or;</a>

ich habe auch ausprobiert ihn so zu machen:

window.location.href = 'http://steffenkraska.de/alt/index.php#1';window.location.reload.hash(true)
Das Funktioniert bei beiden, allerdings nur einmal(was auch die ergebnisse sind die ich durch phpgefummel ereicht habe).

window.location.href = 'http://steffenkraska.de/alt/index.php#1'
funktioniert bei beiden nur einmal und beim 2. mal wird einfach nur
http://steffenkraska.de/alt/index.php#1 als text ausgegeben.

2.
scheinbar scheinen chrome meine formatierung mit </br> nciht zu moegen. und ignorieren die 5 </br> die jeweils zwischen ankerpunkt und menue stehen um einen abstand festzulegen.

3. safari interpretiert das "v" welches ich als &or; verwende anders, es wird viel groesser gibt es eine moeglichkeit das zu beeinflussen.

4(und wieso die seite oben komplett leer ist). ich weiss, meine div formatierung ist ziehmlich mangelhaft, auch das mit dem </br>, aber irgendwie scheint mir das sowieso nicht ganz zu stimmen. ich habe momentan eine direkte weiterleitung aus der index.html zur index.php#m womit er mitten auf der seite ist, was aber der einzige mir moegliche weg war das das menu, wenn man es so nenne will, immer an der gleichen stelle steht. weil irgendwie das derste div der seite etwas kleiner war als alle anderen.

ich hatte noch versucht das mit php zu ereichen, aber es war immer das gleiche, entweder ich setze den anker hinter den link der das php skript aufruft und es geht nicht, oder ich lasse den anker weg, es geht und er landet auf der startseite ganz oben und ohne anker.

ich hoffe hier koennt mir weiterhelfen.
vielen dank im voraus

  1. Hi,

    Hier die seite: http://www.steffenkraska.de/alt/

    Du solltest erst mal die Fehler beseitigen - insb. die multiple Verwendung von IDs innerhalb eines Dokuments.

    es ist so gedacht das der nutzer entweder auf das "v" oder auf "about"
    klickt und zu dem jeweiligen anker gelangt.

    Die 6 Bilder werden jeweils beim betreten der seite aus einem Ordner ausgelesen mit folgendem script: [...]
    und dann im div so ausgegeben : [...]

    Das alles interessiert einen Browser nicht die Bohne.

    Bitte merken: Bei der Diskussion clientseitiger Probleme bitte auch den Code posten, den der Client erhält - serverseitiger Code ist dabei uninteressant.

    Wenn ich im Internetexplorer auf den das "v" klicke welches neben den fotos ist und dazu gedacht ist die seite neu zu laden und zwar am anker #1. kommt der IE am anfang der Seite an.

    Warum verwendest du überhaupt noch A-Elemente mit name-Attribut als Ankerziele?
    Seit langem kann man in allen gängigen Browsern Elemente mit einer ID anspringen.

    ich habe auch ausprobiert ihn so zu machen:

    window.location.href = 'http://steffenkraska.de/alt/index.php#1';window.location.reload.hash(true)
    Das Funktioniert bei beiden, allerdings nur einmal(was auch die ergebnisse sind die ich durch phpgefummel ereicht habe).

    reload ist eine Methode des location-Objektes.
    Wie kommst du auf die Idee, unterhalb derer würde noch eine Methode namens hash existieren?

    window.location.href = 'http://steffenkraska.de/alt/index.php#1'
    funktioniert bei beiden nur einmal und beim 2. mal wird einfach nur
    http://steffenkraska.de/alt/index.php#1 als text ausgegeben.

    Wo „ausgegeben“?

    scheinbar scheinen chrome meine formatierung mit </br> nciht zu moegen. und ignorieren die 5 </br> die jeweils zwischen ankerpunkt und menue stehen um einen abstand festzulegen.

    Nicht nur Chrome mag die nicht, sondern auch jeder, der HTML nicht vergewaltigt sehen möchte.

    Trenne Inhalt und Layout - und nutze CSS für Formatierungen wie Abstände.

    1. safari interpretiert das "v" welches ich als &or; verwende anders, es wird viel groesser gibt es eine moeglichkeit das zu beeinflussen.

    Wenn du ein v in der aktuellen Schriftart willst, verwende das Zeichen v.

    Und sonst versuche die Schriftart zu beeinflussen, so dass das Sonderzeichen möglichst aus einer genommen wird, in der es wie gewünscht dargestellt wird.

    (und wieso die seite oben komplett leer ist). ich weiss, meine div formatierung ist ziehmlich mangelhaft, auch das mit dem </br>, aber irgendwie scheint mir das sowieso nicht ganz zu stimmen.

    Eben, stimmt vorne und hinten nicht.

    Also mach neu und mach richtig.

    MfG ChrisB

    --
    “Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]
  2. Hallo

    Du solltest erst mal die Fehler beseitigen - insb. die multiple Verwendung von IDs innerhalb eines Dokuments.

    Warum verwendest du überhaupt noch A-Elemente mit name-Attribut als Ankerziele?
    Seit langem kann man in allen gängigen Browsern Elemente mit einer ID anspringen.

    Nicht nur Chrome mag die nicht, sondern auch jeder, der HTML nicht vergewaltigt sehen möchte.

    Trenne Inhalt und Layout - und nutze CSS für Formatierungen wie Abstände.

    Ich hoffe das ich das nun gemacht habe. habe die Abstaende und Position per div definiert. die Anker als ids in die divs gebaut und die css ids durch Klassen ersetzt.
    Chrome und Safari machen es nun richtig
    es bleibt ein w3 fehler. den ich wikrlich nicht verstehe, vieleicht kann mir das jmd erklaeren
    fehler

    ich habe auch ausprobiert ihn so zu machen:

    window.location.href = 'http://steffenkraska.de/alt/index.php#1';window.location.reload.hash(true)
    Das Funktioniert bei beiden, allerdings nur einmal(was auch die ergebnisse sind die ich durch phpgefummel ereicht habe).

    reload ist eine Methode des location-Objektes.
    Wie kommst du auf die Idee, unterhalb derer würde noch eine Methode namens hash existieren?

    wie schon gesagt ich habe nicht viel Ahnung, und Methode und Object sind mir keine Begriffe. ich glaube ich habe irgendwo einmal windows.location.reload und einmal windows.location.hash gelesen und dann kombiniert. erscheint mir immer noch logisch, da ich wie gesagt javascript nicht besonders kenne. kann mir aber denken wieso das falsch war.

    window.location.href = 'http://steffenkraska.de/alt/index.php#1'
    funktioniert bei beiden nur einmal und beim 2. mal wird einfach nur
    http://steffenkraska.de/alt/index.php#1 als text ausgegeben.

    Wo „ausgegeben“?

    im Browserfesnter, der Quelltext bei der ausgabe ist dann leer und in der Adresszeile steht
    javascript:window.location.href = 'http://steffenkraska.de/alt/index.php#bil'  [der Anker heisst jetzt anders...]
    falls das etwas zur sache tut. der Browsertext, nach der ersten aktualisierung, ist genauso wie davor, also richtig
    Hier zu finden

    1. safari interpretiert das "v" welches ich als &or; verwende anders, es wird viel groesser gibt es eine moeglichkeit das zu beeinflussen.

    Wenn du ein v in der aktuellen Schriftart willst, verwende das Zeichen v.

    Und sonst versuche die Schriftart zu beeinflussen, so dass das Sonderzeichen möglichst aus einer genommen wird, in der es wie gewünscht dargestellt wird.

    Habe es in ein v veraendert mit einer festen Schriftart. Diese scheint auch ein OR zu beeinflussen, allerdings auch nciht in Safari. Gibt es eine moeglichkeit herauszufinden wie Safari das OR genauso darstellt wie die anderen ?

    Eben, stimmt vorne und hinten nicht.

    Also mach neu und mach richtig.

    ich hoffe es ist jetzt richtig. die Divs sind in der css Datei so definiert:

      
    .container {  
    	border-top:none;  
        float: left;  
        position:static;  
        top:7%;  
    	min-height:1000px;  
      
    }  
    .ausricht {  
    	border-top:none;  
    	margin-top:2%;  
    	margin-left:3%;  
    	position:sbsolute;  
    	min-width:4000px;  
    	  
    }  
    
    

    und werden so in html aufgerufen

      
    <div id="m" class="container">  
    <div class="ausricht">  
            <a href="#bil"  style="font-weight:normal; font-family:Verdana; color:#999999; text-decoration:none;">v</a>&emsp;&emsp;&emsp;&emsp;&emsp;<a  href="#about">about</a>  
    </div></div>  
    
    

    Ich kann nicht sagen ob das sauber oder gut so ist, ich hoffe aber das ich halbwegs gute Arbeit geleistet habe.

    So und nun zum eigetnlichen refresh Problem.
    ich habe eine Loesung gefunden wie es in allen Browsern funktioniert hier zu finden
    Da wird nun auf eine 2. (fast)identische Datei verwiesen, die wiederum zurueck verweist usw. ich denke das kann man getrost als unelegant bezeichnen(besteht aber den w3 check). habt ihr eine bessere Loesung ?

    vielen Dank schonmal. wieder eniges gelernt heute.

    1. es bleibt ein w3 fehler. den ich wikrlich nicht verstehe, vieleicht kann mir das jmd erklaeren
      fehler

      Verstehst du die Begriffe in der Fehlermeldung nicht oder die Sprache?

      "How to fix: check the spelling and case of the element and attribute, (Remember XHTML is all lower-case) [...]"

      Falls es an den Begrifflichkeiten "element" und "attribute" scheitert, ist dieser Artikel hilfreich: Elemente, Tags und Attribute

      Falls es an der Sprache scheitert (frei übersetzt):

      "Wie es zu beheben ist: überprüfe die Rechtschreibung sowie die Groß- und Kleinschreibung des Elements oder Attributs (Bedenke: XHTML ist durchgängig klein geschrieben) [...]"

      Zum Rest gebe ich an Chris weiter, JavaScript ist nicht wirklich meine Baustelle :)

      1. Verstehst du die Begriffe in der Fehlermeldung nicht oder die Sprache?

        danke. Ich spreche schon Englisch, das Problem war, dass ich etwas zu Fokussiert auf den rot markierten Bereich war und dachte etwas sei mit den Gaensefuesschen falsch.Ist erledigt. vielen dank.