Voordat ik het ga melden op de Mozilla bugtracker wil ik hier nog even een second opinion vragen voor het volgende. Erik Arvidsson van webfx.eae.net heeft zich een hele avond ermee bezig gehouden, met venkman ge-debugged, etc. maar kon ook niets anders concluderen als een bug.
Een testcase staat op:
http://mschopman.demon.nl/treeview/treeview.html
In de pagina die geopend wordt, wordt een treeview getoond geladen door xml data via xmlHttp. Elke node heeft een reload method, die resulteerd in het herladen van de node.
In de pagina is een functie gemaakt die deze reload method aanroept. De functie heet doReload(). Zodra je een node selecteerd, en deze functie aanroept zal de node zich gaan reloaden. Zowel in IE, als in Mozilla.
Als je echter van een andere window deze functie aanroept (window.opener.doReload() of igv iframes window.parent.doReload()) dan zal de functie worden aangeroepen, maar wordt ook de base url gewijzigd van de pagina.
Dit kun je als volgt test, open de url, en klik op open window linksbovenin. Klik op de link in die window die de doReload() uitvoert in de opener window. IE6 zal perfect de node reloaden, maar bij Mozilla blijft dit proces hangen. Debuggen in ondemand.js geeft aan de de oXMLDoc leeg is (line 91). Het outputten van de
responseText geeft dan een 404 error terug, waaruit blijkt dat Mozilla zomaar een directory hoger gaat zitten.
Zonder verwijzing naar een hogere directory gaat Mozilla toch zoeken in een hogere directory indien de functie doReload() niet vanuit de pagina wordt aangeroepen. Roep je de functie wel in die pagina aan, dan gaat het wel goed.
Dit lijkt me dus een bug, maar misschien....
Een testcase staat op:
http://mschopman.demon.nl/treeview/treeview.html
In de pagina die geopend wordt, wordt een treeview getoond geladen door xml data via xmlHttp. Elke node heeft een reload method, die resulteerd in het herladen van de node.
In de pagina is een functie gemaakt die deze reload method aanroept. De functie heet doReload(). Zodra je een node selecteerd, en deze functie aanroept zal de node zich gaan reloaden. Zowel in IE, als in Mozilla.
Als je echter van een andere window deze functie aanroept (window.opener.doReload() of igv iframes window.parent.doReload()) dan zal de functie worden aangeroepen, maar wordt ook de base url gewijzigd van de pagina.
Dit kun je als volgt test, open de url, en klik op open window linksbovenin. Klik op de link in die window die de doReload() uitvoert in de opener window. IE6 zal perfect de node reloaden, maar bij Mozilla blijft dit proces hangen. Debuggen in ondemand.js geeft aan de de oXMLDoc leeg is (line 91). Het outputten van de
responseText geeft dan een 404 error terug, waaruit blijkt dat Mozilla zomaar een directory hoger gaat zitten.
Zonder verwijzing naar een hogere directory gaat Mozilla toch zoeken in een hogere directory indien de functie doReload() niet vanuit de pagina wordt aangeroepen. Roep je de functie wel in die pagina aan, dan gaat het wel goed.
Dit lijkt me dus een bug, maar misschien....