FireFox Ersatz für den Wert 'innerText
b.harnisch
- javascript
0 molily
0 b.harnisch0 molily
0 molily
0 b.harnisch
0 Auge
Hallo,
es wäre nett, wenn mir jemand bei der folgenden Problemlösung weiterhelfen könnte.
Ich habe auf meine HP einen Besucherzähler der mit IE und Opera fehlerfrei funktioniert. Mit dem FireFox funktioniert er leider nicht, da FireFox den Wert 'innerText' nicht kann.
Ich erlaube mir, den Quelltext zur Ansicht einzukopieren.
Hinweis: Die Scrips sind nicht von mir, denn auch dazu habe leider Hilfe benötigt.
------------------------------------------------------------------------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>counter</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="language" content="de">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<SCRIPT language="JavaScript" type="text/JavaScript">
<!--
function convertCntr(sId) {
if (document.getElementById) {
var d = document.getElementById(sId);
var za = parseInt(d.innerText)
}
if (isNaN(za) == true) {
var za=0
}
var e=new Array();
for(i=0;i<10;i++) {
e[i]=new Image();
e[i].src="dgt"+i+".gif";
}
var gr1=za%10;
document["cou1"].src=e[gr1].src;
var gr2=parseInt(za/10,10),gr2=gr2%10;
document["cou2"].src=e[gr2].src;
var gr3=parseInt(za/100,10),gr3=gr3%10;
document["cou3"].src=e[gr3].src;
var gr4=parseInt(za/1000,10),gr4=gr4%10;
document["cou4"].src=e[gr4].src;
var gr5=parseInt(za/10000,10),za1=gr5,gr5=za1%10;
document["cou5"].src=e[gr5].src;
var gr6=parseInt(za1/10,10),gr6=gr6%10;
document["cou6"].src=e[gr6].src;
var gr7=parseInt(za1/100,10),gr7=gr7%10;
document["cou7"].src=e[gr7].src;
var gr8=parseInt(za1/1000,10),gr8=gr8%10;
document["cou8"].src=e[gr8].src;
var gr9=parseInt(za1/10000,10),gr9=gr9%10;
document["cou9"].src=e[gr9].src;
}
function clock() {
var d=new Array();
for(i=0;i<10;i++) {
d[i]=new Image();
d[i].src="dgt"+i+".gif";
}
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="clock(),convertCntr('cnt');">
<DIV align=center>
Besucher Nr.:
<TABLE align="center" class="in">
<TR align="center" valign="middle">
<TD><IMG id=cou9 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou9><IMG id=cou8 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou8><IMG id=cou7 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou7><IMG id=cou6 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou6><IMG id=cou5 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou5><IMG id=cou4 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou4><IMG id=cou3 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou3><IMG id=cou2 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou2><IMG id=cou1 height=19 alt=dgbl src="dgtbl.gif" width=14 name=cou1> </TD>
</TR>
</TABLE>
<div id="cnt" style="position:absolute; z-index:1; visibility: hidden;">
<script language="JavaScript" type="text/javascript" src="http://counter.topster.de/?user=1234106199">
</script>
</div>
</BODY>
</HTML>
-----------------------------------------------------------------------
Der Quellcode ist im Prinzip funktionsfähig. Nur die Grafiken fehlen. Wenn diese zur Problemlösung benötigt werden, schicke ich sie gern per Email.
Mit freundlichen Grüßen
B.Harnisch.
Mit dem FireFox funktioniert er leider nicht, da FireFox den Wert 'innerText' nicht kann.
Verwende alternativ die gleichwertige Eigenschaft textContent:
var textinhalt = element.textContent || element.innerText;
Mathias
Mit dem FireFox funktioniert er leider nicht, da FireFox den Wert 'innerText' nicht kann.
Verwende alternativ die gleichwertige Eigenschaft textContent:
var textinhalt = element.textContent || element.innerText;
Vielen Dank Mathias!
Verstehe ich Dich richtig, daß die Variable 'textinhalt' eine zusätzliche Variable ist, die den Wert 'innerText' nachbildet?
Hier noch mal die problematische Funktion
-----------------------------------------------------
function convertCntr(sId) {
if (document.getElementById) {
var d = document.getElementById(sId);
var za = parseInt(d.innerText)
}
-----------------------------------------------------
Es wäre nett, wenn Du diese Funktion editieren könntest, denn ich bekomme es leider nicht auf die Reihe :-( .
Für mich ist nur interessant, daß in der Variablen 'za' eine Ganzahl abgelegt ist, dann sollte es funktionieren.
Mit freundlichen Grüßen
B.Harnisch.
Verstehe ich Dich richtig, daß die Variable 'textinhalt' eine zusätzliche Variable ist, die den Wert 'innerText' nachbildet?
Ja. Dahinter wird eine Eigenschafts-Abfrage gemacht. Wenn das Elementobjekt die Eigenschaft textContent hat, wird dieser Wert verwendet, andernfalls innerText.
Hier noch mal die problematische Funktion
function convertCntr(sId) {
if (document.getElementById) {
var d = document.getElementById(sId);
var za = parseInt(d.innerText)
}Es wäre nett, wenn Du diese Funktion editieren könntest, denn ich bekomme es leider nicht auf die Reihe :-( .
d ist dein Elementobjekt.
Mit d.innerText greifst du auf innerText zu. Das ersetzt du durch die Variable, in der du den Text browserübergreifend gespeichert hast.
Vor »var za = ...« schreibst du also z.B.
var textinhalt = element.textContent || element.innerText;
und dann var za = parseInt(textinhalt);
Mathias
Wenn das Elementobjekt die Eigenschaft textContent hat, wird dieser Wert verwendet, andernfalls innerText.
d ist dein Elementobjekt.
var textinhalt = element.textContent || element.innerText;
Wer mitgedacht hat, weiß natürlich, dass es entsprechend d.textContent und d.innerText heißen muss. ;)
Mathias
Vielen Dank Mathias,
jetzt habe ich, mit Deiner Hilfe, das Problem lösen können.
Für alle die auch so viel Hilfe benötigen wie ich, hier nochmal die editierte Funktion.
--------------------------------------------------
function convertCntr(sId) {
if (document.getElementById) {
var d = document.getElementById(sId);
var ti = d.textContent || d.innerText;
var za = parseInt(ti)
}
-------------------------------------------------
Nochmals vielen Dank!
Mit freundlichen Grüßen
B.Harnisch.
Hallo
var textinhalt = element.textContent || element.innerText;
Verstehe ich Dich richtig, daß die Variable 'textinhalt' eine zusätzliche Variable ist, die den Wert 'innerText' nachbildet?
Die Variable enthält den Wert, also den (Text-)Inhalt des Elements.
Hier noch mal die problematische Funktion
function convertCntr(sId) {
if (document.getElementById) {
var d = document.getElementById(sId);
var za = parseInt(d.innerText)
}Es wäre nett, wenn Du diese Funktion editieren könntest, denn ich bekomme es leider nicht auf die Reihe :-( .
Für mich ist nur interessant, daß in der Variablen 'za' eine Ganzahl abgelegt ist, dann sollte es funktionieren.
Mit http://de.selfhtml.org/javascript/objekte/unabhaengig.htm#parse_int@title=parseInt wird der der Funktion übergebene Parameter in eine Ganzzahl (Integer) umgewandelt. Die dabei erzeugte und befüllte Variable za existiert aber nur *innerhalb* der Funktion. Um sie, bzw. ihren Wert, außerhalb der Funktion weiterbenutzen zu können, musst du diesen Wert nach außen zurückgeben. Setze dazu an das Ende der Funktion return za;
und ändere den Aufruf der funktion so, dass es auch außerhalb diese Variable gibt.
function convertCntr(sId) {
if (document.getElementById) {
var d = document.getElementById(sId);
var za = parseInt(d.innerText);
return za;
}
<BODY onLoad="[code lang=javascript]clock();za=convertCntr('cnt');
">[/code]
Tschö, Auge