javascript problem

  • Hallo.

    habe eine Seite mit einem flashfilm und einer htmlnavigation.
    über diese navigation erhält der flashfilm eine javascript-variable den den film dann anweist auf eine bestimmte position zu gehen.

    also
    <a href="content.php?tpl=rubrik&rubrik=1&page=0" onmouseover="changeMain(this.id);status='ORTE//MENSCHEN';return true" onmouseout="status='';return true" onfocus="if(this.blur){this.blur()}" id="1" ><img src="_img/_navi/rubrik1.gif" width="124" height="26" border="0" id="rubrik1"></a>
    die id wird übergeben und im flash film gehts dann weiter:
    if(testvar1 == 0){
    setProperty("/animation_produkte", _x, 100);
    setProperty("/animation", _x, 100);
    }else{
    setProperty("/animation_produkte", _x, var2);
    setProperty("/animation", _x, var1);
    }

    in allen browsern geht das
    netscape, mozilla, opera und ie

    bei firefox kommt dieser fehler (konsole)
    Fehler: document[movieid].SetVariable is not a function
    Quelldatei: file:///C:/Dokumente%20und%20Einstellungen/Administrator/Desktop/deu/DEMO/content_alte_navi.html
    Zeile: 321
    und zeile 321 ist:
    document[movieid].SetVariable(values[0],values[1]);

    nun ist mein problem auch, dass ich die browserdetection von firefox nicht finde ich habe mal ausprobiert:
    this.isFirefox = (ua.indexOf('firefox')!=-1);

    hier die komplette version:
    // Detection snippet from http://www.dithered.com/javascript/browser_detect/index.html
    // -----------------------------------------------------------
    //var ua = navigator.userAgent.toLowerCase();
    //var is_pc_ie = ( (ua.indexOf('msie') != -1 ) && ( ua.indexOf('win') != -1 ) && ( ua.indexOf('opera') == -1 ) && ( ua.indexOf('webtv') == -1 ) );
    function BrowserDetect() {
    //
    if (navigator.userAgent.indexOf("Firefox")!=-1)
    alert("This script may not be compatable with FireFox.")
    /*
    if(navigator.appName == "WebTV")
    {
    alert("This script may not be compatable with WebTV.")
    }
    if (navigator.userAgent.indexOf("Netscape")!=-1)
    {
    alert("You need Firefox or Internet Explorer to view this script.");
    window.location = "http://jdstiles.com/java/ns.html"
    }

    if (navigator.userAgent.indexOf("Opera")!=-1)
    {
    alert("You need Firefox or Internet Explorer to view this script.");
    window.location = "http://jdstiles.com/java/ns.html"
    }
    */
    var ua = navigator.userAgent.toLowerCase();

    // browser engine name
    this.isGecko = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
    this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);

    // browser name
    this.isKonqueror = (ua.indexOf('konqueror') != -1);
    this.isSafari = (ua.indexOf('safari') != - 1);
    this.isOmniweb = (ua.indexOf('omniweb') != - 1);
    this.isOpera = (ua.indexOf('opera') != -1);
    this.isIcab = (ua.indexOf('icab') != -1);
    this.isAol = (ua.indexOf('aol') != -1);
    this.isIE = (ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1) );
    this.isMozilla = (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length);
    this.isFirebird = (ua.indexOf('firebird/') != -1);
    this.isNS = ( (this.isGecko) ? (ua.indexOf('netscape') != -1) : ( (ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1) ) );
    //this.isFirefox = (ua.indexOf('firefox')!=-1); //club basic
    // spoofing and compatible browsers
    this.isIECompatible = ( (ua.indexOf('msie') != -1) && !this.isIE);
    this.isNSCompatible = ( (ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);

    // rendering engine versions
    this.geckoVersion = ( (this.isGecko) ? ua.substring( (ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14) ) : -1 );
    this.equivalentMozilla = ( (this.isGecko) ? parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) ) : -1 );
    this.appleWebKitVersion = ( (this.isAppleWebKit) ? parseFloat( ua.substring( ua.indexOf('applewebkit/') + 12) ) : -1 );

    // browser version
    this.versionMinor = parseFloat(navigator.appVersion);

    // correct version number
    if (this.isGecko && !this.isMozilla) {
    this.versionMinor = parseFloat( ua.substring( ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1 ) );
    }
    else if (this.isMozilla) {
    this.versionMinor = parseFloat( ua.substring( ua.indexOf('rv:') + 3 ) );
    }
    else if (this.isIE && this.versionMinor >= 4) {
    this.versionMinor = parseFloat( ua.substring( ua.indexOf('msie ') + 5 ) );
    }
    else if (this.isKonqueror) {
    this.versionMinor = parseFloat( ua.substring( ua.indexOf('konqueror/') + 10 ) );
    }
    else if (this.isSafari) {
    this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('safari/') + 7 ) );
    }
    else if (this.isOmniweb) {
    this.versionMinor = parseFloat( ua.substring( ua.lastIndexOf('omniweb/') + 8 ) );
    }
    else if (this.isOpera) {
    this.versionMinor = parseFloat( ua.substring( ua.indexOf('opera') + 6 ) );
    }
    else if (this.isIcab) {
    this.versionMinor = parseFloat( ua.substring( ua.indexOf('icab') + 5 ) );
    }

    this.versionMajor = parseInt(this.versionMinor);

    // dom support
    this.isDOM1 = (document.getElementById);
    this.isDOM2Event = (document.addEventListener && document.removeEventListener);

    // css compatibility mode
    this.mode = document.compatMode ? document.compatMode : 'BackCompat';

    // platform
    this.isWin = (ua.indexOf('win') != -1);
    this.isWin32 = (this.isWin && ( ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1) );
    this.isMac = (ua.indexOf('mac') != -1);
    this.isUnix = (ua.indexOf('unix') != -1 || ua.indexOf('sunos') != -1 || ua.indexOf('bsd') != -1 || ua.indexOf('x11') != -1)
    this.isLinux = (ua.indexOf('linux') != -1);

    // specific browser shortcuts
    this.isNS4x = (this.isNS && this.versionMajor == 4);
    this.isNS40x = (this.isNS4x && this.versionMinor < 4.5);
    this.isNS47x = (this.isNS4x && this.versionMinor >= 4.7);
    this.isNS4up = (this.isNS && this.versionMinor >= 4);
    this.isNS6x = (this.isNS && this.versionMajor == 6);
    this.isNS6up = (this.isNS && this.versionMajor >= 6);
    this.isNS7x = (this.isNS && this.versionMajor == 7);
    this.isNS7up = (this.isNS && this.versionMajor >= 7);

    this.isIE4x = (this.isIE && this.versionMajor == 4);
    this.isIE4up = (this.isIE && this.versionMajor >= 4);
    this.isIE5x = (this.isIE && this.versionMajor == 5);
    this.isIE55 = (this.isIE && this.versionMinor == 5.5);
    this.isIE5up = (this.isIE && this.versionMajor >= 5);
    this.isIE6x = (this.isIE && this.versionMajor == 6);
    this.isIE6up = (this.isIE && this.versionMajor >= 6);

    this.isIE4xMac = (this.isIE4x && this.isMac);
    }
    var is_pc_ie = new BrowserDetect();

    ich würde mich freun wenn mir da jemand weiter helfen kann

    beste grüss
    robert

  • Browser detect: Unzuverlässig, den scheiss (pardon) kannst du auch einfach ignorieren.
    Du hast keine Garantie dass jemand überhaupt einen Useragent angegeben hat bzw. mit einem falschen surft.
    Halte dich an den Standard, soweit ich weiß hat sogar der IE damit keine Probleme bei Javascript.
    Wenn du schreiben willst dass die Seite möglicherweise mit Firefox/IE blalba nicht geht, schreib es so in die Seite. Die meisten User sind immerhin so intelligent das zu ignorieren, was sie nicht betrifft.

    @eigentliches Problem. Naja. Mit der einen Zeile kann ich wenig anfangen. Entweder gibt's die Funktion "setVariable" nicht oder moveid ist ungültig.
    Ich bin mir nicht sicher, vielleicht muss eine ID mindestens einen Buchstaben haben.
    Aber ohne das Script ist das stochern ins ungewisse (oder überseh' ich wieder nur den link?)
    grüße