Paul Eppner: Problem mit Array

Beitrag lesen

Hallo,

ich fasse das jetzt nochmal zusammen, denn es geht immer noch nicht :-/ ich habe eine datei die erzeugt mir diesen content:

&nbsp;<a href="javascript:void(0)" onMouseOver="showmenu(event,linkset['cat_53']);off();" onMouseOut="delayhidemenu();"><img src="tpl/standard/img/but_folderinfo1.gif" width="15" height="12" /></a>
<script language="JavaScript1.2">
  linkset['cat_53']='Testinhalt """''''
</script>
&nbsp;Empfang</label></p><div id="tree_53" style="display:none;">Laden...</div>
<iframe src="tpl/standard/empty.html" name="recharge" id="recharge"></iframe>

beim drüberfahren wird mir durch diese function der inhalt in einem layer angezeigt:
function showmenu() {
 if (!blnPopup) return;
 // get arguments
 objEvent    = (arguments.length >= 1) ? arguments[0]: event;
 varMenu     = (arguments.length >= 2) ? arguments[1]: null;
 strMenuName = (arguments.length >= 3) ? ((arguments[2].length > 0) ? arguments[2]: "popmenu"): "popmenu";
 intMenuType = (arguments.length >= 4) ? arguments[3]: 0;
 // check requirements
 // hide old menu and set global vars menuobj and menuobj.thestyle
 clearhidemenu();
 objPopup.callByClick = (objEvent.type.toLowerCase() == "click")
 if (objPopup.callByClick && objPopup.visible) {
  objPopup.hide()
 } else {
  objPopup.name = strMenuName
  objPopup.createMenuObject();
  // create menutext from parameter
  // if parameter is instanceof Array then create new menutext
  // else if parameter is a string, then take it for the menu
  if (varMenu.sort) objPopup.createMenu(varMenu, (intMenuType == 1));
  else objPopup.stroutput = varMenu;
     // if ns4 create a layer-tag
     if (ns4) objPopup.createNS4Layer();
  // write menu into html
  objPopup.writeHTML()
  // get size and menu position
  objPopup.adjustPosition(objEvent)
  // show menu
  objPopup.show()
 }
 return false;
}
das funktioniert auch :-) jetzt habe ich davor allerdings einen anderen link der mir genau den gleichen inhalt nur nicht mit id53 sondern z.b. 54 in das iframe läd. der inhalt des iframes sieht dann so aus:

<html>
<head>
  <script src="tpl/standard/js/standard.js" type="text/javascript"></script>
</head>
<body onload="recharge(54);">
&nbsp;<a href="javascript:void(0)" onMouseOver="showmenu(event,linkset['cat_54']);off();" onMouseOut="delayhidemenu();"><img src="tpl/standard/img/but_folderinfo1.gif" width="15" height="12" /></a>
<script language="JavaScript1.2">
  linkset['cat_54']='Testinhalt """''''
</script>
&nbsp;Empfang</label></p>
</body>
</html>

hier wird die funktion recharge aufgerufen, die so aussieht:

function recharge(id) {
 parent.document.getElementById('tree_'+id).innerHTML = document.body.innerHTML;
}

nun wird also in diesem div der nächste content angezeigt nur hier erkennt er den array nicht, obwohl er genau so aufgerufen wird wie die anderen. der 1. fehler ist linkset ist undefiniert, meine lösung war darauf vor linkset var linkset = new Array(); zu schreiben. nun kommt dieser fehler nicht mehr, allerdings ist trotzdem linkset leer. wenn ich in der funktion showmenu mir mit alert varMenu ausgeben lasse steht da undefiniert. wenn ich bei der übergabe nicht versuche den array zu übergeben sondern direkt den inhalt des arrays kommt was an. das problem ist aber das der inhalt des arrays " und ' enthält. " kann ich einfach nicht verwenden. außerdem stehen noch links und vieles mehr da drinnen. also ist meine aktuelle idee das irgendwie zu verschlüsseln. da ich aber eine variable mit content nicht verschlüsseln kann, die wäre genau so leer hab ich mir überlegt den content per php zu verschlüsseln direkt in den link einzutragen und dann per js wieder zu entschlüsseln, das ist mir bis jetzt aber noch nicht gelungen, da ich keine variante gefunden habe die ich mit php ver und mit js entschlüsseln kann. die andere idee ist den array im frame anzusprechen da ich vermute das er da ansprechbar ist. wenn mir nun jemand helfen kann wäre ich demjenigen riesen dankbar! ich kann mit demjenigen auch gerne telefonisch das ganze näher erleutern.

gruß, paul