Javascript Problem

HPI-Service

Aktives Mitglied
Hallo,

habe hier folgendes Script, wo ich Euch bitten wurde mir zu erklären was das Script genau macht (bin keine Javascript Profi)
rolleyes.gif


CODE
var strbrw=navigator.userAgent.toLowerCase();
if(strbrw.indexOf("msie") > -1 && strbrw.indexOf("mac")<0)
{var newstickeragain;scagain=document.getElementById("newstickerobj");
scagain.outerHTML = scagain.outerHTML;}
function unnewsticker()
{if (strbrw.indexOf("msie") > -1 && strbrw.indexOf("mac") < 0)
{if (document.getElementsByTagName)
{var newstickerobjs = document.getElementsByTagName("OBJECT");
for (i=0; i<newstickerobjs.length; i++){newstickerobjs[i].outerHTML = "";
}}}}
window.onunload=unnewsticker;


das script gehört zu einem flash newsticker, der auf normalen seiten wunderbar funktioniert. sofern die seite aber über einen ssl proxy läuft, verschwindet der ladebalken beim internet explorer nicht (so als wenn er dauerhaft versucht was zu laden). das ist irgendwie doof da der user dann immer denkt die seite lädt noch
sad.gif


beim firefox und auf nicht ssl seiten gehts ohne probleme.

vielen dank

gruß
mirko
 
würde als erstes mal auf eine sicherheitseinstellung tippen.

wird der newsticker denn auch über ssl eingebunden?

falls nicht und er nur über http statt https eingebunden wird, wird er wohl als "unsichere quelle" eingestuft und deshalb nicht geladen.
 
Ich hab das Gefühl, das ist nicht der ganze Javascript-Code. Wenn doch, ist er aus meiner Sicht mindestens zum Teil sinnlos. Der erste Teil, der beim Laden der Seite ausgeführt wird, macht faktisch nichts - den Teil könnte man also grad weglassen.

Der zweite Teil wird beim Entladen ausgeführt und sorgt dafür, dass der Ticker - oder besser alle auf der Seite vorhandenen Ticker - entladen wird. Keine Ahnung warum das nötig sein soll; ich kenn mich mit Flash nicht aus.

Der Code prüft immer zuerst, ob er auf einem "IE nicht auf Mac" läuft. Insofern gäbs einen Unterschied zwischen IE und Firefox. Aber auf SSL oder nicht hat der Code keinen Einfluss.

Hier noch der kommentierte Code:

CODE //hole die Browserkennung
var strbrw=navigator.userAgent.toLowerCase();

//wenn der Browser ein IE ist, aber nicht auf einem Mac läuft
if(strbrw.indexOf("msie") > -1 && strbrw.indexOf("mac")<0) {
//deklariere eine variable (wird aber nie verwendet, also überflüssig)
var newstickeragain;
//hole das HTML-Element mit der ID newstickerobj
scagain=document.getElementById("newstickerobj");
//setze den HTML-Code des Elements auf seinen HTML-Code (sinnlos)
scagain.outerHTML = scagain.outerHTML;
}

//deklariere die Funktion unnewsticker
function unnewsticker(){
//wenn der Browser ein IE ist, aber nicht auf einem Mac läuft
if (strbrw.indexOf("msie") > -1 && strbrw.indexOf("mac") < 0){
//wenn der Browser die Funktion getElementsByTagName unterstützt
if (document.getElementsByTagName){
//hole alle HTML-Elemente mit dem Tag Object
var newstickerobjs = document.getElementsByTagName("OBJECT");
//durchlaufe alle diese HTML-Elemente
for (i=0; i<newstickerobjs.length; i++){
//entferne den HTML-Code des aktuellen Elements
newstickerobjs[i].outerHTML = "";
}
}
}
}

//führe die Funktion unnewsticker beim Verlassen der Seite aus
window.onunload=unnewsticker;

Griessli
Irene
 
danke für Eure Antworten. Also der Newsticker wird folgendermaßen in html eingebunden:

CODE <OBJECT id="newstickerobj" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="https://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab
#version=5,0,0,0" WIDTH=480 HEIGHT=19>
<PARAM NAME=movie VALUE="newsticker.swf">
<PARAM NAME=menu VALUE=false>
<PARAM NAME=quality VALUE=high>
<PARAM NAME=wmode VALUE=opaque>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<EMBED src="newsticker.swf" menu=false quality=high wmode=opaque
bgcolor=#FFFFFF  WIDTH=480 HEIGHT=19 TYPE="application/x-shockwave-flash" PLUGINSPAGE="https://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></EMBED></OBJECT><script src="newstickerjs.js" type="text/javascript"></script>


und da wird ja das javascript aufgerufen.

hatte auch schon probiert die "newsticker.swf" und "newstickerjs.js" als absolute ssl-url aufzurufen, das gleiche problem. also der newsticker wird ja auch bei ssl geladen, aber wie schon geschrieben hört die seite nicht auf zu laden, obwohl alles vollständig geladen ist.

die meldung das unsichere objekte geladen werden, kommt nur wenn ich die links zu macromedia als http einbinde (also z.b: "http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0".

mir scheint so als wenn die variable:


CODE {var newstickeragain;scagain=document.getElementById("newstickerobj");
scagain.outerHTML = scagain.outerHTML;}


immer wieder das object nachlädt, wodurch die probleme bei ssl entstehen?! wenn ich diese zeile nämlich entferne ist der fehler weg aber dann muss man muss den newsticker erst aktivieren "Klicken Sie hier um das Steuerelement zu aktivieren und zu verwenden" um drauf zu klicken (der newsticker ist mit einem verlinkung zu einer bestimmen seite versehen wenn man rauf klickt).

gruß
mirko
 
Zurück
Oben