document.write can be a form of eval - Erstellung von Windows Gadget

TS7

Mitglied
Hallo an alle,

Ich bin dabei ein Gadget für Windows Vista / 7 zu schreiben, leider brauche ich noch etwas Unterstützung.

Wenn ich mein Gadget installiere, sehe ich nur ein kleines Feld.
Bild siehe Anhang

Wenn ich den Code bei jsLint.com eingebe bekomme ich folgende Fehlermeldung:
Problem at line 17 character 13: document.write can be a form of eval.
....folgende mit document.write sind auch betroffen

Wenn ich allerdings die document.write Anweisungen weg lasse wird das Gadget normal angezeigt.

Überrings funktioniert alles Prima im IE8.

Freue mich über jede Hilfe.

Hier mein Script:
HTML:
<html>
<head>
<script>
      var xmlDoc

      function readXML()
        {
          if(xmlDoc.readyState == 4) { 
            document.write("<table style=\"width:130px; border:0; font-size: 11px; font-family:Verdana, Geneva, sans-serif;\">\n");
            document.write("<tr>\n");
            document.write("<td>Guthaben: <\/td>\n");
            document.write("<td>" + xmlDoc.getElementsByTagName("total")[0].text + " &euro;<\/td>\n");
            document.write("<\/tr>\n");
            document.write("<tr>\n");
            document.write("<td>heute: <\/td>\n");
            document.write("<td>" + xmlDoc.getElementsByTagName("today")[0].text + " &euro;<\/td>\n");
            document.write("<\/tr>\n");
            document.write("<tr>\n");
            document.write("<td>gestern: <\/td>\n");
            document.write("<td>" + xmlDoc.getElementsByTagName("yesterday")[0].text + " &euro;<\/td>\n");
            document.write("<\/tr>\n");
            document.write("<\/table>\n");
      }
    }

    function loadxml()
    {
      xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
      xmlDoc.async = false;
      xmlDoc.onreadystatechange = readXML;
      xmlDoc.load("http://test.com/test.xml");
    }
  </script>
 </head>

 <body onLoad="loadxml();">
</body>
</html>
 

Anhänge

  • 1.jpg
    1.jpg
    4,2 KB · Aufrufe: 477
Moin,

es sieht aus, als wolltest du write() nach dem Laden des Dokumentes ausführen.

Dadurch wird der bisherige Inhalt des Dokumentes überschrieben....inkl. Skripte etc.

Füge das Markup besser per
Code:
document.body.innerHTML=?
ins document ein, da besteht dies Problem nicht.
 
  • Gefällt mir
Reaktionen: TS7
Durcheinander des Textes im Gadget

Vielen Dank
jetzt hab ich noch ein Problem.
Würde mich sehr über eine weitere Antwort freuen.

Im Gadget wird der Text komischerweise ein bisschen durcheinander angezeigt. Siehe Anhang.

Hier mein geändertes Script:
index.html
PHP:
<html>
  <head> 
    <title>Statistik Gadget</title>
    <link rel="stylesheet" type="text/css" href="css/style_k.css">
    <script>
	  var xmlDoc

	  function readXML()
          {
          if(xmlDoc.readyState == 4) { 
            document.body.innerHTML = "<span class=\"left\">Guthaben: <\/span><span class=\"right\">" + xmlDoc.getElementsByTagName("total")[0].text + " &euro;<\/span><br>";
            document.body.innerHTML += "<span class=\"left\">heute: <\/span><span class=\"right\">" + xmlDoc.getElementsByTagName("today")[0].text + " &euro;<\/span><br>";
            document.body.innerHTML += "<span class=\"left\">gestern: <\/span><span class=\"right\">" + xmlDoc.getElementsByTagName("yesterday")[0].text + " &euro;<\/span><br>";
           }
        }

       function loadxml()
       {
        xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
         xmlDoc.onreadystatechange = readXML;
        xmlDoc.load("http:/test.de/test.xml");
	}

  </script>
 </head>

 <body onLoad="loadxml();">
 </body>
</html>

style_k.css
PHP:
body{
	width: 130px;
	height: 100px;
}
.left{
	float: left;
}
.right{
	float: right;
}
 

Anhänge

  • 2.jpg
    2.jpg
    7,5 KB · Aufrufe: 410
Moin,

dass die Zeilen verschoben dargestellt werden, liegt an der width:130px-Deklaration, die um mindestens 10px aufgestockt gehört.

mfg Maik
 
Zurück