Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2004 Teil von Dezember

SELFHTML Forumsarchiv
Zwei Probleme mit einem Javascript

Informationsseite
  1. Seite (JAVASCRIPT) Zwei Probleme mit einem Javascript von Mathias, 31. 12. 2004, 15:28
nach unten

Zwei Probleme mit einem Javascript

Die folgende Nachricht zum Thema stammt von: Mathias, 31. 12. 2004, 15:28

Hallo

1) Hab folgende HTML Seite mit JavaScript welches im IE läuft, in Mozilla jedoch nicht funktioniert. Klickt man auf den Button "GetNodes!" sollten z.B. die ID's aller aufgeklappten Knoten in der Textarea gespeichert werden. In Mozilla passiert nichts...weiss jemand warum?

2) Erhalte ich in IE wo das Skript funktioniert immer am Schluss der Liste ein ",". Sieht jemand wo in der Rekursion ich was ändern muss, damit am Schluss kein Komma mehr steht...?

##########
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Node 1</title>
<style>
</style>
</head>
<body>

<script language="javascript">

//The hidden control id
var hiddenControlId = "textarea";

//Panel id prefix
var prefixPanel = "panel_";

//Defines which nodes to save
// block = defined displayed nodes
//  none  = defined hidden nodes
var save  = "block";

//Separator
var sep   = ",";

function toggleNode(id)  {
 if(document.getElementById(id).style.display == "none") {
  document.getElementById(id).style.display = "block";
 }else {
  document.getElementById(id).style.display = "none";
 }
}

function saveState()  {
 document.getElementById(hiddenControlId).innerText = getNodes(document.getElementById('tree'));
}

function getNodes(obj) {
 var output = "";

 if((obj.id != undefined) && (obj.id.substring(0, prefixPanel.length) == prefixPanel) && (obj.style.display == save)) {
  output = obj.id + sep;
 }

 if(obj.hasChildNodes()) {
  for(var i = 0; i < obj.childNodes.length; i++) {
   output += getNodes(obj.childNodes[i]);
  }
 }

 return output;
}

</script>
<div id="tree">
<div id="node_1" style="border: 1px solid black;">
 <img style="cursor:pointer" border="0" src="plus.gif" width="16" height="22" onclick="toggleNode('panel_1')">Node 1
 <div id="panel_1" style="margin-left:20px;border: 1px solid black; display:block">
  <div id="node_11" style="border: 1px solid black">
   <img border="0" src="plus.gif" width="16" height="22" style="cursor:pointer" onclick="toggleNode('panel_11')">Node 1.1
   <div id="panel_11" style="margin-left:20px;border: 1px solid black; display:block"></div>
  </div>
  <div id="node_12" style="border: 1px solid black">
   <img style="cursor:pointer" border="0" src="plus.gif" width="16" height="22" onclick="toggleNode('panel_12')">Node 1.2
   <div id="panel_12" style="margin-left:20px;border: 1px solid black; display:block">
    <div id="node_121" style="border: 1px solid black">
     <img style="cursor:pointer" border="0" src="plus.gif" width="16" height="22" onclick="toggleNode('panel_121')">Node 1.2.1
     <div id="panel_121" style="margin-left:20px;border: 1px solid black; display:block"></div>
    </div>
   </div>
  </div>
  <div id="node_13" style="border: 1px solid black">
   <img style="cursor:pointer" border="0" src="plus.gif" width="16" height="22" onclick="toggleNode('panel_13')">Node 1.3
   <div id="panel_13" style="margin-left:20px;border: 1px solid black ; display:block"></div>
  </div>
 </div>
</div>
</div>
<form>
 <p><input type="button" value="GetNodes!" name="B3" onclick="saveState()">
 </p>
 <p><textarea id="textarea" rows="18" name="S1" cols="75"></textarea></p>
</form>

</body>

</html>

##########


Gruss Mathias

nach obennach unten

Zwei Probleme mit einem Javascript

Die folgende Nachricht zum Thema stammt von: Axel Richter, 31. 12. 2004, 16:27

Hallo,
»»
»» document.getElementById(hiddenControlId).innerText = getNodes(document.getElementById('tree'));
[Node].innerText ist eine IE-Eigenschaft. Probiere

  document.getElementById(hiddenControlId).value = getNodes(document.getElementById('tree'));

»» 2) Erhalte ich in IE wo das Skript funktioniert immer am Schluss der Liste ein ",". Sieht jemand wo in der Rekursion ich was ändern muss, damit am Schluss kein Komma mehr steht...?

function saveState()  {
 document.getElementById(hiddenControlId).value = getNodes(document.getElementById('tree')).substr(0, getNodes(document.getElementById('tree')).length-1 );
}

viele Grüße

Axel

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2004 Teil von Dezember

© 1998-2008 Seite Impressum, Software: Classic Forum