Ejecutar javascript devuelto por ajax
Tengo un problemón y para variar es urgente... Les cuento. Tengo un script php con un <select>. En el evento "onchange" de javascript ejecuto una función que llama a otro script desde ajax (para no recargar la página). En el otro script se crea un objeto árbol (treeMenu) pero como ajax no ejecuta código javascript, lo devuelve.
Necesito ejecutar el código javascript una vez devuelto por el ajax, pero no sé como. Y ya he probado "eval".
El script que llama ajax devuelve lo siguiente (y es correcto):
<!--
<pre><script language="javascript" type="text/javascript"></pre><pre> objTreeMenu_1 = new TreeMenu("lib/HTML_TreeMenuXL/TMimages", "objTreeMenu_1", "_self", "treeMenuDefault"</pre><pre>, false);</pre><pre> newNode = objTreeMenu_1.addItem(new TreeNode('primero|5|null', 'folder.gif', null, true, true, 'treeMenuDefault'</pre><pre>, '', '', 0, 0, '1'));</pre><pre> newNode_1 = newNode.addItem(new TreeNode('primero 2|6|5', 'folder.gif', null, true, true, 'treeMenuDefault'</pre><pre>, '', '', 0, 0, '1'));</pre><pre> newNode_1_1 = newNode_1.addItem(new TreeNode('12345789|5', 'tree.gif|copy.gif', 'manage_entries.php</pre><pre>?id=5', false, true, 'treeMenuDefault', '', '', 0, 0, '0'));</pre><pre> newNode_1_1_1 = newNode_1_1.addItem(new TreeNode('revisión 1|6', 'file.gif|copy.gif', 'manage_entries</pre><pre>.php?id=6', true, true, 'treeMenuDefault', '', 'edit_form.php?id=6&rev=5&dir=6', 0, 0, '0'));</pre><pre> newNode_1_1_1.iconImageWidth=20;</pre><pre> newNode_1_1_1.iconImageHeight=20;</pre><pre> newNode_1_1_1.lineImageWidth=20;</pre><pre> newNode_1_1_1.lineImageHeight=20;</pre><pre> newNode_1_1.iconImageWidth=20;</pre><pre> newNode_1_1.iconImageHeight=20;</pre><pre> newNode_1_1.lineImageWidth=20;</pre><pre> newNode_1_1.lineImageHeight=20;</pre><pre> newNode_1.iconImageWidth=20;</pre><pre> newNode_1.iconImageHeight=20;</pre><pre> newNode_1.lineImageWidth=20;</pre><pre> newNode_1.lineImageHeight=20;</pre><pre> newNode.iconImageWidth=20;</pre><pre> newNode.iconImageHeight=20;</pre><pre> newNode.lineImageWidth=20;</pre><pre> newNode.lineImageHeight=20;</pre><pre> newNode = objTreeMenu_1.addItem(new TreeNode('segundo|7|null', 'folder.gif', null, true, true, 'treeMenuDefault'</pre><pre>, '', '', 0, 0, '1'));</pre><pre> newNode.iconImageWidth=20;</pre><pre> newNode.iconImageHeight=20;</pre><pre> newNode.lineImageWidth=20;</pre><pre> newNode.lineImageHeight=20;</pre><pre> objTreeMenu_1.drawMenu();</pre><pre> objTreeMenu_1.resetBranches();</pre><pre></script></pre> -->
Yo lo coloco en un div del formulario del primer script. Pero necesito ejecutar la función "drawMenu" del árbol de javascript una vez devuelto, como lo hago ¿
Necesito ejecutar el código javascript una vez devuelto por el ajax, pero no sé como. Y ya he probado "eval".
El script que llama ajax devuelve lo siguiente (y es correcto):
<!--
<pre><script language="javascript" type="text/javascript"></pre><pre> objTreeMenu_1 = new TreeMenu("lib/HTML_TreeMenuXL/TMimages", "objTreeMenu_1", "_self", "treeMenuDefault"</pre><pre>, false);</pre><pre> newNode = objTreeMenu_1.addItem(new TreeNode('primero|5|null', 'folder.gif', null, true, true, 'treeMenuDefault'</pre><pre>, '', '', 0, 0, '1'));</pre><pre> newNode_1 = newNode.addItem(new TreeNode('primero 2|6|5', 'folder.gif', null, true, true, 'treeMenuDefault'</pre><pre>, '', '', 0, 0, '1'));</pre><pre> newNode_1_1 = newNode_1.addItem(new TreeNode('12345789|5', 'tree.gif|copy.gif', 'manage_entries.php</pre><pre>?id=5', false, true, 'treeMenuDefault', '', '', 0, 0, '0'));</pre><pre> newNode_1_1_1 = newNode_1_1.addItem(new TreeNode('revisión 1|6', 'file.gif|copy.gif', 'manage_entries</pre><pre>.php?id=6', true, true, 'treeMenuDefault', '', 'edit_form.php?id=6&rev=5&dir=6', 0, 0, '0'));</pre><pre> newNode_1_1_1.iconImageWidth=20;</pre><pre> newNode_1_1_1.iconImageHeight=20;</pre><pre> newNode_1_1_1.lineImageWidth=20;</pre><pre> newNode_1_1_1.lineImageHeight=20;</pre><pre> newNode_1_1.iconImageWidth=20;</pre><pre> newNode_1_1.iconImageHeight=20;</pre><pre> newNode_1_1.lineImageWidth=20;</pre><pre> newNode_1_1.lineImageHeight=20;</pre><pre> newNode_1.iconImageWidth=20;</pre><pre> newNode_1.iconImageHeight=20;</pre><pre> newNode_1.lineImageWidth=20;</pre><pre> newNode_1.lineImageHeight=20;</pre><pre> newNode.iconImageWidth=20;</pre><pre> newNode.iconImageHeight=20;</pre><pre> newNode.lineImageWidth=20;</pre><pre> newNode.lineImageHeight=20;</pre><pre> newNode = objTreeMenu_1.addItem(new TreeNode('segundo|7|null', 'folder.gif', null, true, true, 'treeMenuDefault'</pre><pre>, '', '', 0, 0, '1'));</pre><pre> newNode.iconImageWidth=20;</pre><pre> newNode.iconImageHeight=20;</pre><pre> newNode.lineImageWidth=20;</pre><pre> newNode.lineImageHeight=20;</pre><pre> objTreeMenu_1.drawMenu();</pre><pre> objTreeMenu_1.resetBranches();</pre><pre></script></pre> -->
Yo lo coloco en un div del formulario del primer script. Pero necesito ejecutar la función "drawMenu" del árbol de javascript una vez devuelto, como lo hago ¿
1 Respuesta
Respuesta de zagalet