В IE с Chrome Frame, после нажатия на ссылку для прикрепления файла, Javascript заблокирован
Вот странный. Бросить его туда, чтобы увидеть, есть ли у кого-нибудь мысли.
Эта проблема возникает только в IE, когда установлен Chrome Frame. Похоже, влияет на все версии IE.
Когда пользователь загружает файл, приложение перестает отвечать (файл успешно загружен). Ссылки все еще работают, но все JS, кажется, заблокированы. Если пользователь перезагружает браузер, приложение работает нормально, и повторная загрузка (даже тот же файл) больше не приводит к зависанию приложения.
Вот пример ссылки (просто полностью ванильный):
<a id="m2658941440_a0_1316118824779" href="getAttachment.do?messageId=2658941440&attachmentId=0&preventCache=1316118825309" class="attachment" _dijitmenudijit_menu_7="1">attachment_prob.txt (277 bytes)</a>
А вот запрос и ответ, о которых сообщил Fiddler.
ЗАПРОС:
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 ответ
Я работал над этим, программно создавая Iframe и устанавливая его URL для загрузки файла, вместо использования текущего окна. Это исправило это.
Я заметил, как он был сломан, он использовал загрузчик IE (несмотря на то, что он хромированный). Когда я использую iframe, он использует Chrome Downloader.