Newsfader - Funktion vereinfachen?

Kann ich danach auch ähnlich wie mit dem hasChildren abfragen, ob schon ein Kind existiert und im Falle des Nichtexistierens das so in der Art erzeugen?

Code:
if (!LieferObjekt('bastiticker').children(0)) {
							insertAdjacentHTML("AfterBegin",'<a href="#"></a>'

Help me, I'm lost ;)
 
Ja, das sollte gehen.
Beachte allerdings: im Gegensatz zu den DOM-childNodes gelten beim IE nur HTML-Elemente als Kindknoten, also nicht reiner Text.

Übrigens: da du dich aktuell mit dem IE/Windows-Scripting zu beschäftigen scheinst:
Suche mal auf deinem Rechner nach einer Datei namens mse.exe.

Starte das Programm...in der dortigen Hilfe findest die viele interessante Details, welche man sonst im Netz und auf MSDN mühsam zusammenklauben muss;)
 
Die Datei mse.exe habe ich nicht auf meinem PC. Welches Programm muss ich dafür installieren?

Zu der Children-Geschichte für IE4: Habe folgendes geschrieben:
Code:
if (!LieferObjekt('bastiticker').children(0)) {				
      LieferObjekt('bastiticker').insertAdjacentHTML("AfterBegin","<a href=\"#\"></a>");
}				
LieferObjekt('bastiticker').children(0).href=A_Links[i];			
LieferObjekt('bastiticker').innerHTML=StartTag+A_Tickertext[i]+EndTag;

Das Zuweisen des Textes funktioniert. Jedoch das Zuweisen des Hyperlinks scheitert. Ich bekomme keine Fehlermeldung.
Hast du ne Idee?
:)
 
Ich glaube, MSE ist bei Office dabei(hast du ja:-))

Ich bin nicht sicher, ob es das ist, aber füge mal beim Office-Setup die Komponente:

Office Tools>HTML-Quellcodebearbeitung>Webscripting

...hinzu.

Falls du es in Zukunkft noch öfters mit Office-Programmen zu tun haben solltest, nehme auch gleich noch

Office Tools>Visual-Basic-Hilfe


Zu dem Anderen: Drehe das Ganze mal um: Erst innerHTML-zuweisen, und dann href-Attribut setzen(sonst ist der Link ja noch nicht da, wenn du ihm ein Ziel zuweisen willst)
 
Ich habe den Ticker nun abgeändert und es funktioniert. :-) Danke, danke!

Code:
function SwitchText() {
if (ZeitenPruefen()) {
	if (i>=A_Tickertext.length) i=0;
	if (w3cdom || docall) {				
		LieferObjekt('bastiticker').style.color="rgb("+c['kopie'].join(',')+")"; // Ursprungsfarbe setzen					
		if (w3cdom && !docall) {	// Opera unterstützt nur w3cdom und kein docall
			if (!LieferObjekt('bastiticker').hasChildNodes()) {	
				aknoten = document.createElement("a");					// benötigten A-Knoten erstellen
				LieferObjekt('bastiticker').appendChild(aknoten);		// benötigten Knoten einhängen
				textknoten = document.createTextNode("");
				LieferObjekt('bastiticker').firstChild.appendChild(textknoten);
			}
			LieferObjekt('bastiticker').firstChild.firstChild.nodeValue = StartTag+A_Tickertext[i]+EndTag;// text hinzufügen						
			LieferObjekt('bastiticker').firstChild.href = A_Links[i];  // Link ändern	
			StatusAendern(A_Status[i]);					
			
		}
		else {
			if (!LieferObjekt('bastiticker').children(0)) {	
				LieferObjekt('bastiticker').insertAdjacentHTML("AfterBegin","<a id=\"linki\">");
				LieferObjekt('bastiticker').insertAdjacentHTML("BeforeEnd","</a>");										
			}	
			LieferObjekt('bastiticker').children(0).innerHTML=StartTag+A_Tickertext[i]+EndTag;	
			LieferObjekt('bastiticker').children(0).href=A_Links[i];
			//LieferObjekt('bastiticker').children(0).setAttribute("href",A_Links[i],"false");
			StatusAendern(A_Status[i]);							
		}	
		FarbDimmen();					
	}
	else if (ns4lay) {
		LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.open();
		LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.clear();
		LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.write(StartTag+'<a href="'+A_Links[i]+'">'+A_Tickertext[i]+'</a>'+EndTag);
		LieferObjekt('bastiticker_ns').document.fscrollerns_sub.document.close();
		StatusAendern(A_Status[i]);
	}						
	setTimeout("SwitchText()",newsschaltzeit);
	i++;						
}
else alert('Dimmschaltzeit * Faktor ist mehr als die Newsschaltzeit');			
}

Fallen dir irgendwelche Fehler auf oder Dinge, die optimiert werden könnten?
Bzw. habt ihr die Möglichkeit das nochmal in deinen Browsern zu testen?
Als Anhang deshalb die aktuelle Version nochmal.

Nochetwas: Habe jetzt eine Statuszeilen-Funktion hinzugefügt, mit der man jedem Newstext einen Statuszeilentext zuweisen kann.
Die funktioniert ist ziemlich einfach und sieht so aus:
Code:
function StatusAendern(txt) {
	window.status=txt;
	return true;
	}

Nur leider gibts da ein Problem mit Netscape 7.1 und Firefox: Wenn man mit der Maus auf dem Newstext verweilt, ändert sich der Text in der Statusleiste nicht. Bei Opera, IE5.5 und NN4 tritt dieses Problem nicht auf.
Woran könnte das liegen? Kann ich das trotzdem noch hinbiegen?

:confused:
 

Anhänge

Zuletzt bearbeitet:
sh0x hat gesagt.:
Nur leider gibts da ein Problem mit Netscape 7.1 und Firefox: Wenn man mit der Maus auf dem Newstext verweilt, ändert sich der Text in der Statusleiste nicht. Bei Opera, IE5.5 und NN4 tritt dieses Problem nicht auf.
Woran könnte das liegen? Kann ich das trotzdem noch hinbiegen?

Das kann schlicht an den Browsereinstellungen liegen.
Wenn der Benutzer seinen Browser so konfiguriert, dass das Ändern der Statuszeile nicht gestattet ist, dann kannst du (gottseidank) nichts machen.
 
Fallen dir in meinem neuen Code irgendwelche Fehler auf? Ist ja als Anhang dabei.
Habe echt ne Menge geändert :-)
Und selber fallen mir oft Fehler im eigenen Code bzw. Verbesserungen nicht auf.
Falls du noch diese nicht so herkömmlichen Browser auf dem PC hast, wäre ich dir sehr dankbar, wenn du es nochmal damit testen könntest.

EDIT: Hatte den Anfang vergessen. Sorry, wie konnte mir das nur passieren?
 

Anhänge

Zuletzt bearbeitet:
Also sorry nochmal. Ich hatte vergessen, die Datei anzuhängen.
Ich hoffe, dass ihr den Ticker nochmal mit einer konstruktiv-kritischen Axt zerfleischen möget!

Ich bin wirklich offen für jegliche Kritik - möchte das Ding nämlich so gut es geht verbessern.

Auch hilft mir, wenn ihr es mal in einem selteneren Browser testet. Mich würde interessieren, ob es jetzt wirklich in jedem Browser läuft.

Grüße!
 

Neue Beiträge

Zurück