IE6 губи Querystring

Имам страница, която грабва стойности от низа на заявката с помощта на javascript window.location. Това работи добре, когато се изпълнява от уеб сървър, но ако го стартирам локално с помощта на IE6, като поставя това в адресната лента

c:\mysite\index.htm

Всички низове на заявки, създадени от сайта, се губят и window.location съдържа само местоположението до .htm.

Разбирам, че примерът по-горе няма низ за заявка, но тази страница препраща към страници, които го правят. Това също се проваля, когато се изпълнява от мрежов дял, например \\server\mysite\index.htm. Изглежда, че работи добре в IE7+ и се проваля само в IE6.

Някакви идеи ме подлудяват.

Редактиране: Току-що разбрах, че това се случва в модален прозорец има ли някаква разлика?


person Gavin    schedule 20.08.2009    source източник
comment
iedeathmarch.org   -  person Havenard    schedule 20.08.2009


Отговори (4)


Низовете на заявката изрично не съществуват за URI на схемата „файл“. Вижте RFC1738. Няма смисъл да поставяте ?query в края на URI на „file:“.

Ако искате да включите допълнителна информация за местоположение, налична за скриптове на страницата, използвайте #fragment идентификатор и location.hash.

person bobince    schedule 20.08.2009

Това може да е проблем със сигурността в IE6. Единственото, за което се сещам, е да използвам HTA вместо HTML файл. Това вариант ли е?

person Karl Johan    schedule 20.08.2009

Знаете ли, че window.location не е прост низ, а структуриран обект с полета? Низът на заявката е в window.location.search - очевидно IE6 просто не включва тази част при отпечатване на родителския обект.

person Michael Borgwardt    schedule 20.08.2009
comment
да, наясно съм с това, IE6 изглежда губи текста за търсене, когато се изпълнява офлайн - person Gavin; 20.08.2009
comment
хм, тогава това е неприятна странност. - person Michael Borgwardt; 20.08.2009
comment
също така изглежда, че предхожда местоположението с file:// не съм сигурен дали това има някаква разлика в начина, по който работи - person Gavin; 20.08.2009
comment
Той добавя към местоположението file://, защото използвате файловия протокол, а не HTTP протокола. Както посочва bobince, низът за заявка няма значение във връзка с файловия протокол. Това е HTTP нещо, така че IE има напълно право да го изхвърли за достъп до файловата система. Ако искате да използвате HTTP, трябва да стартирате HTTP сървър. - person NickFitz; 20.08.2009

Изглежда, че IE6 пренебрегва всички низове на заявки, когато работи локално на модални прозорци. Преодолях проблема, като прехвърлих променливите в модалния прозорец като диалогови аргументи, а не като низове на заявки.

person Gavin    schedule 24.08.2009