Ben bezig met een script waarbij ik een bepaalde node wil clonen. Hierna kijken of er binnen de gecloonde node een form zit op een bepaalde node, zo ja van het form de naam en id aanpassen. Leek me niet zo lastig en in FireFox is dit ook niet lastig 
HTML code van node die gecloned wordt:
De relevante code in Javascript:
windowname is de naam van de div die aangeroepen wordt, bijvoorbeeld login_window.
Nu is het probleem dat ik in Internet Explorer de volgende foutmelding krijg:
Nu lijkt het erop dat ondanks dat de node gecloned wordt deze niet meer helemaal in de DOM terecht komt waardoor hij niet geen childNodes ofzo meer heeft?
Heb al gezocht, kom het probleem wel vaker tegen maar eigenlijk zonder oplossing
Iemand hier een oplossing ?
HTML code van node die gecloned wordt:
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| <div id="login_window" style="display: none; padding-bottom: 30px;"> <form method="POST" action="'.SCRIPT_ROOT.'?page=login&query='.base64_encode($_SERVER['QUERY_STRING']).'" name="" id="submit"> <h1>Login</h1> <table> <tr> <td> Wachtwoord: </td> <td> <input type="password" name="password"> </td> </tr> <tr> <td> </td> <td><input type="hidden" name="submit_login"></td> </tr> <tr> <td></td> <td style="text-align: right;"><strong><a href="javascript: document.getElementById(\'submit_login_window\').submit();">Inloggen</a></strong></td> </tr> </table> </form> </div> |
De relevante code in Javascript:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| function open_popup(windowname) { var text = document.getElementById('popup_window_content'); var content = document.getElementById(windowname); if(text.childNodes.length >= 1) { while(text.hasChildNodes()) { text.removeChild(text.lastChild); } } var newNode = content.cloneNode(true); if(!!document.all) newNode.innerHTML = content.innerHTML; if(newNode.childNodes[1].tagName == 'FORM') { newNode.childNodes[1].name='submit_'+windowname; newNode.childNodes[1].id='submit_'+windowname; } newNode.style.display = 'block'; text.appendChild(newNode); set_popup_background_size(); } |
windowname is de naam van de div die aangeroepen wordt, bijvoorbeeld login_window.
Nu is het probleem dat ik in Internet Explorer de volgende foutmelding krijg:
code:
1
| Fout: 'childNodes.1.tagName' is leeg of geen object |
Nu lijkt het erop dat ondanks dat de node gecloned wordt deze niet meer helemaal in de DOM terecht komt waardoor hij niet geen childNodes ofzo meer heeft?
Heb al gezocht, kom het probleem wel vaker tegen maar eigenlijk zonder oplossing
SmartDoDo: Ach, afhankelijk van je smaak kan het best een lekker geil ding zijn :P
You never had a date you couldn't inflate