21. srpna 2003 (čtvrtek)
Chyba v MS patchi pro IE - 822925
Vyjímečně jedna z IT: posledni patch na IE, který dnes přišel s číslem 822925 znefunkční Internet Explorer tak, že přestanou fungovat některé intranetové aplikace.
Problem je v tom, že voláte-li z frame JVS funkci, která je v parentu a předáváte jí jako parametr relativní cestu, reprezentuje tuto relativní cestu jinak, než předtím.
Last patch for IE6, numbered Q822925, causes malfunctions of previously written applications.
Problem description: when sending relative URL address to global javascript function (in case of nested frames it is located in top frame in order to provide maximal re-use and flexibility), this top function uses the URL address of top page as a base, not the URL address of the caller of the top function (one of nested frames). This results in 404. This problems occured after installing above mentioned patch.
Příklad - Sample
Page (/default.asp)
...
<script language="javascript">
Function OpenNewWindow (strRelativeURL) {
...
}
</script>
<FRAMESET>
<FRAME ... src="/somefolder/somescript.asp">
...
</FRAMESET>
If somefolder/somescript.asp makes call top.OpenNewWindow('someotherscript.asp'), before aplying patch page "/somefolder/someotherscript.asp" is requested. After aplying patch page "/someotherscript.asp" is requested.
Po pár dotazech doplňuji: chyba se týká Internet Exploreru, tudíž klienta v intranetové/internetové aplikaci. O to je horší. Na server byste podobnou záplatu nejspíš po zjištění, že mění dosavadní chování systému nenainstalovali. Co si nainstalují klienti bohužel až na vyjímky v korporátních sítích neovlivníte.
A za spolupráci s řešením tohoto problému a jeho včasné odhalení posílám dík Wencovi a Kouďasovi.