В IE с Chrome Frame, после нажатия на ссылку для прикрепления файла, Javascript заблокирован - PullRequest
0 голосов
/ 20 июня 2011

Вот странный. Бросить его туда, чтобы посмотреть, есть ли у кого-нибудь мысли.

Эта проблема возникает только в IE, если установлен Chrome Frame. Похоже, влияет на все версии IE.

Когда пользователь загружает файл, приложение перестает отвечать (файл успешно загружен). Ссылки по-прежнему работают, но все JS, кажется, заблокирован. Если пользователь перезагружает браузер, приложение работает нормально, и повторная загрузка (даже тот же файл) больше не приводит к зависанию приложения.

Вот пример ссылки (просто полностью ванильный):

<a id="m2658941440_a0_1316118824779" href="getAttachment.do?messageId=2658941440&amp;attachmentId=0&amp;preventCache=1316118825309" class="attachment" _dijitmenudijit_menu_7="1">attachment_prob.txt (277 bytes)</a>

А вот запрос и ответ, о которых сообщил Фидлер.

ЗАПРОС:

GET https://www.foo.net/getAttachment.do?messageId=2658941440&attachmentId=0&preventCache=1316122999730 HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: https://www.foo.net/main.do
Accept-Language: en-US
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; chromeframe/13.0.782.220)
Accept-Encoding: gzip, deflate
Host: www.foo.net
Connection: Keep-Alive
Cookie: __utma=185983734.639214142.1315756824.1316118759.1316121566.5; __utmb=185983734.2.10.1316121566; __utmz=185983734.1315756824.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=185983734; fooDomain=foo.net; isYtBlocked=true; TIME$STATE=10ba57c6bdb0075922b4c9ad4ef9940baf6bde26c79f3c6bcfe700413fe1710e; xgh=gnweb10; JSESSIONID=8487D0FE3D31EE81D2DE4E0BD19B7104; BIGipCookie=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000; cdnPath="https://cdn.foo.net"; SESSION$STATE=10ba57c6bdb0075922b4c9ad4ef9940baf6bde26c79f3c6bcfe700413fe1710e; JID=mtyson; XMPPTOKEN=4662e808-1492-45ff-9aa7-ca39969574ea; contest-data=null; Foo.web3.foo.net.-csdvew.86158rid=5648145; PHPSESSID=cfepc8dnvmj94tbrqb8nbb03r0; Foo.web3.foo.net.-csdvew.86158sid=7ff697be-0d55-40c7-bb4a-f896443b22c3

РЕПЛИКА:

HTTP/1.1 200 OK
Date: Thu, 15 Sep 2011 21:43:32 GMT
Server: Apache/2.2.10 (Fedora)
Content-Disposition: attachment; filename="attachment_prob.txt"
Cache-Control: max-age=2
Expires: Thu, 15 Sep 2011 21:43:34 GMT
Set-Cookie: xgh=gnweb10; path=/;
Set-Cookie: BIGipCookie=000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
Vary: User-Agent,Accept-Encoding
P3P: policyref=http://www.foo.net/w3c/p3p.xml, CP=ALL
Connection: close
Content-Type: text/plain; name=attachment_prob.txt;charset=us-ascii
Content-Length: 277

https://www.foo.net/messages.do?op=messageDetail&userId=12735728&messageId=2620253518&owner=true

select groupid, shardid from users where userid=12735728;
+---------+---------+
| groupid | shardid |
+---------+---------+
|   57826 |       2 |
+---------+---------+

ОБНОВЛЕНИЕ 1 Оказывается, НИЧЕГО, что возвращает загрузку, вызовет проблему. Итак, даже:

<a id="m2658941440_a0_1316118824779" href="http://download.mozilla.org/?product=firefox-6.0.2&os=win&lang=en-US" class="attachment" _dijitmenudijit_menu_7="1">attachment_prob.txt (277 bytes)</a>

Создает проблему.

Но

<a id="m2658941440_a0_1316118824779" href="http://www.google.com" class="attachment" _dijitmenudijit_menu_7="1">attachment_prob.txt (277 bytes)</a>

НЕ.

Обновление 2 На основании комментария gilly3, если цель установлена ​​на _blank, файл будет нормально загружаться на новой вкладке, не нарушая JS на главной странице.

Я попытался указать цель на iframe на главной странице, но проблема в этом случае присутствует.

1 Ответ

0 голосов
/ 23 января 2012

Я обошел это путем программного создания Iframe и установки его URL-адреса для загрузки файла вместо использования текущего окна.Это исправило это.

Я заметил, как он сломался, он использовал загрузчик IE (несмотря на то, что он хромированный).Когда я использую iframe, он использует загрузчик Chrome.

...