JavaScript anwendung wird von Firefox geblockt.

  • Schönen guten Tag zusammen,

    ich hoffe das das jetzt nicht zu viel wird aber ich poste mal die Script datei hierrein. Meiner meinung nach blockt der Firefox diese Anwendung und ich möchte mal geren wissen warum und ob ich diesen effekt anders auch erzielen kann.

    Danke schoneinmal im Vorraus!!!

    Chris

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <title>Mustertext</title>
    <link rel="stylesheet" href="style.css" type="text/css">
    <script language="JavaScript" type="text/javascript">
    <!--
    function popup(seite, weite, hoehe)
    {
    var mon, toppos, leftpos;

    toppos = (screen.height - hoehe)/2;
    leftpos = (screen.width - weite)/2;
    features = "scrollbars=0,location=0,toolbar=0,menubar=0,resizable=0,status=0";
    mon = window.open(seite,"windowName","width="+weite+",height="+hoehe+",top="+toppos+",left="+leftpos+", "+features);
    mon.focus();
    }

    startingColor = new Array() // <-- Do not modify!
    endingColor = new Array() // <-- Do not modify!


    // YOU MAY MODIFY THE FOLLOWING:
    // Fill this array with the images you wish to preload
    var yourImages = new Array (
    '/images/footer_1.jpg',
    '/images/footer_2.jpg',
    '/images/footer_3.jpg')


    var locationAfterPreload = "javascript:popup('index2.htm', 788, 599)" // The script will redirect here when the preloading finishes *successfully*
    var preloadbarWidth = 200 // The length of the preload bar. Should be greater than total amount of images you want to preload!
    var preloadbarHeight = 10 // The height of the gradient/preload bar
    var backgroundOfGradient = "#000000" // Default color while the preload bar is "filling up"

    // Color the preloadbar is starting with - enter 1st, 3rd and 5th numbers/letters of color code
    startingColor[0] = "F"
    startingColor[1] = "9"
    startingColor[2] = "1"

    // Color the preloadbar is going to end up with - enter the 1st, 3rd and 5th numbers/letters of color code
    endingColor[0] = "F"
    endingColor[1] = "9"
    endingColor[2] = "1"

    // FOR TROUBLESHOOTING:
    var gap = 3 // PLAY AROUND WITH THIS SETTING IF YOU GET A JAVASCRIPT ERROR!!! 2 is the minumum value!!!


    // DO NOT MODIFY ANYTHING BEYOND THIS POINT!!!

    if (!document.all) location.replace(locationAfterPreload)
    var a = 10, b = 11, c = 12, d = 13, e = 14, f=15, i, j, ones = new Array(), sixteens = new Array(), diff = new Array();
    var convert = new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"), imgLen = yourImages.length;
    var loaded = new Array(), preImages = new Array(), currCount = 0, pending = 0, h = 0, hilite = new Array(), cover = new Array();
    var num = Math.floor(preloadbarWidth/gap);
    for (i = 0; i < 3; i++) {
    startingColor[i] = startingColor[i].toLowerCase();
    endingColor[i] = endingColor[i].toLowerCase();
    startingColor[i] = eval(startingColor[i]);
    endingColor[i] = eval(endingColor[i]);
    diff[i] = (endingColor[i]-startingColor[i])/num;
    ones[i] = Math.floor(diff[i]);
    sixteens[i] = Math.round((diff[i] - ones[i])*15);
    }
    endingColor[0] = 0;
    endingColor[1] = 0;
    endingColor[2] = 0;
    i = 0, j = 0;
    while (i <= num) {
    hilite[i] = "#";
    while (j < 3) {
    hilite[i] += convert[startingColor[j]];
    hilite[i] += convert[endingColor[j]];
    startingColor[j] += ones[j];
    endingColor[j] += sixteens[j];
    if (endingColor[j] > 15) {
    endingColor[j] -= 15;
    startingColor[j]++;
    }
    j++;
    }
    j = 0;
    i++;
    }
    function loadImages() {
    for (i = 0; i < imgLen; i++) {
    preImages[i] = new Image();
    preImages[i].src = yourImages[i];
    loaded[i] = 0;
    cover[i] = Math.floor(num/imgLen)*(i+1)
    }
    cover[cover.length-1] += num%imgLen
    checkLoad();
    }
    function checkLoad() {
    if (pending) { changeto(); return }
    if (currCount == imgLen) { location.replace(locationAfterPreload); return }
    for (i = 0; i < imgLen; i++) {
    if (!loaded[i] && preImages[i].complete) {
    loaded[i] = 1; pending++; currCount++;
    checkLoad();
    return;
    }
    }
    setTimeout("checkLoad()",10);
    }
    function changeto() {
    if (h+1 > cover[currCount-1]) {
    var percent = Math.round(100/imgLen)*currCount;
    if (percent > 100) while (percent != 100) percent--;
    if (currCount == imgLen && percent < 100) percent = 100;
    defaultStatus = "Loaded " + currCount + " out of " + imgLen + " images [" + percent + "%].";
    pending--;
    checkLoad();
    return;
    }
    eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");;
    h++;
    setTimeout("changeto()",1);
    }
    defaultStatus = "Loaded 0 out of " + imgLen + " images [0%]."
    // end hiding -->
    </script>
    </head>

    <body bgcolor="000000">

    <table width=100% height=100%>
    <tr>
    <td>
    <center>
    <br>
    <br>
    <font color="ffffff">Lade Grafiken...</font><br>
    <br>
    <script language="JavaScript" type="text/javascript">
    <!-- beging hiding
    document.write('<table border="1" bordercolor="#000000" style="background-color:#000000" cellpadding="0" cellspacing="0" width="' + preloadbarWidth + '"><tr height="' + preloadbarHeight + '" bgcolor="' + backgroundOfGradient + '">');
    for (i = 0; i < num; i++) {
    document.write('<td bordercolorlight="75A0BD" bordercolordark="75A0BD" width="' + gap + '" id="cell' + (i+1) + '"></td>');
    }
    document.write('</tr></table>');
    loadImages();
    // end hiding -->
    </script>
    </center>
    </td>
    </tr>
    </table>
    </body>
    </html>

  • Der Firefox blockt da garnix. Es liegt am Javascript, besser, am document.all Befehl, den versteht nur der Internet Explorer. Das Script ist von daher veraltet. Da sollte vielleicht eine Browserweiche zum Einsatz kommen wie bei einer meiner Seiten, siehe hier.

  • und bitte das grundgerüst einer HTML datei einhalten...

    Zitat

    Eine gewöhnliche HTML-Datei besteht grundsätzlich aus folgenden Teilen:

      *Dokumenttyp-Angabe (Angabe zur verwendeten HTML-Version)
      *Header (Kopfdaten. z.B. Angaben zu Titel u.ä.)
      *Body (Körper - anzuzeigender Inhalt, also Text mit Überschriften, Verweisen, Grafikreferenzen usw.)

    http://de.selfhtml.org/html/allgemein/grundgeruest.htm#html

  • Browserweiche?!
    Pass bloß auf wenn bugcatcher hier vorbei kommt ;)

    Browserweichen, auf keinen Fall nimm lieber
    document.getElementById("id")

    das geht in allen modernen browsern und sogar ie kann es.
    die id legt man per attribut id in einem beliebigen element fest... wäre shcwer zu erraten gewesen ;)?

  • also auf das mit dem document.all wäre ich nicht gekommen. Ich weiß auch leider nicht wie das mit dem attribut gemeint ist. Kannst du das vielleicht in dem quelltext selber ändern???

  • nein, weil das nicht mein javascript ist. fremden code zu lesen ist schon recht schwierig, ohne einrückungen macht's das noch schwerer.
    poste vielleicht ma nen link wo man das ganze eingerückt sieht...?

  • Code
    if (!document.all) location.replace(locationAfterPreload)


    in

    Code
    if(!document.getElementById){location.replace(locationAfterPreload);}

    und

    Code
    eval("document.all.cell" + (h+1) + ".style.backgroundColor = hilite[h]");


    in

    Code
    eval("document.getElementById('cell" + (h+1) + "').style.backgroundColor = hilite[h]");

    ändern. dann sollte es gehen.

    aber solange der popupblocker aktive ist, wird keine seite geöffnen. und browser die kein getElementById können, landen auf einer leeren seite. browser die keine javascript können (oder aktiviert haben) bekommen auch nur eine leere seite zu sehen. wenn Javascript, dann bitte darauf achten, dass es auch ohne geht. stichtwort: "barrierefrei"

    Einmal editiert, zuletzt von bugcatcher (21. März 2005 um 21:13)

  • Habe die Sachen laut deinen vorschlag geändert, doch im Firefox tut sich leider immer noch nichts. Im Internet Explorer funktioniert es einwandfrei, doch beim Firefox kommt nur eine weiße seite!! Hast du vielleicht sonst noch eine idee?? Oder weißt du irgendeine seite wo es ein anderes script für die selbe funktion gibt??

    Gruß Chris

  • Hier: http://abi07.der-kobold.net/index.php hat sich nix geändert. Falsch abgespeichert?

    Und hier: http://www.bugcatcher.de/files/kobold.html ist der Beweis das es geht. Danke, dass ich mir die Mühe hab machen müssen.

    Abschliessent: so ein Blödsinn gehört eh verboten. Leute per Skript aussperren, obwohl das was das Script bewirkt völlig überflüssig ist. Insofern weiss ich nicht wo man ein anderes ähnliches Script findet. Javascript darf für die Funktionalität einer Seite einfach nicht erforderlich sein.

  • Also wenn ich auf http://abi07.der-kobold.net/index.php gehe bekomme ich hier mit diesem Firefox eine komplett weiße seite, aber das PopUp geht doch auf.

    Wenn ich mit meinem anderen PC online bin sehe ich nur die weiße seite und kein PopUp. Woran könnte das liegen??

    Und auch diese url http://www.bugcatcher.de/files/kobold.html, funktioniert hier an diesem PC mit dem Firefox so: Ich sehe sogar den Ladebildschirm anstatt einer weißen seite und dann öffnet das PopUp. Bei meinem anderen PC sehe ich im FF zwar die index-seite, aber das PopUp öffnet sich NICHT.

    Habe auch meine kollegen mal gefragt das sie das mal checken sollen und bei denen tritt der selbe fehler wie bei mir auf. KEIN POPUP. und leider weiß ich nicht warum!!! Aber jeder der diesen eintrag liest, wäre ich sehr verbunden mal die seite http://abi07.der-kobold.net/index.php aufzurufen um zu gucken wie es bei euch aussieht. Wäre für jedes statement dankbar da ich wissen will ob es noch andere user gibt die das selbe problem haben.

  • Zitat von bugcatcher

    Abschliessent: so ein Blödsinn gehört eh verboten. Leute per Skript aussperren, obwohl das was das Script bewirkt völlig überflüssig ist. Insofern weiss ich nicht wo man ein anderes ähnliches Script findet. Javascript darf für die Funktionalität einer Seite einfach nicht erforderlich sein.


    Dem kann ich nur ausdrücklich zustimmen und deshalb werde ich auch keinen Test durchführen.

    Sorry
    Werner

  • das zitat verstehe ich nicht, wen oder was schließe ich mit der funktion aus?? Es soll doch nur ein ladebildschirm kommen und dann die seite automatisch in einem popup öffnen lassen. Was hat das mit ausschließen zu tun???

  • auch gibt es leute die keine popups zulassen :)

    HP Chromebook 15a-nb0225ng, i3N-305, 8 GB LPDDR5-4800 MHz RAM (integriert), 256GB UFS, - chromeOS 135 (Stable Channel) - Linux Debian Bookworm: Firefox Nightly, Beta und Main Release (Mozilla PPA), Android 13: Firefox Nightly und Firefox (Main Release)

    Smartphone - Firefox Main Release, Firefox Nightly

  • ja das weiß ich ja selber aber ich will keine seite bauen wo man auf einen link klickt und dann erst das popup aufgeht sonder ich möchte wenn man die url eingibt sofort das popup und ohne javascript ist das nicht möglich oder???

  • Warum überhaupt ein Popup?

    Entweder wird die Seite gleich angezeigt, wenn ich die URL eingebe, oder ich schaue mir andere Seiten an.

    Die einzigen Popups, die ich zulasse, sind die Benachrichtigungen hier im Forum, wenn eine neue PN da ist. Alle anderen Popups (und somit auch die sich dahinter versteckenden Seiten) werden geblockt und nicht beachtet.

  • na dann werd ich es mir nochmal überlegen. aber ich glaube ihr habt mich überstimmt!! Scheiß auf PopUps!! Vieln Dank für eure schnelle hilfe und beiträge. bis demnächst mal wieder wenn ich eine "sinnvolle" Frage habe!!!