internet explorer 8-在Chrome框架的IE中,点击文件附件链接后,Javascript被阻止

internet explorer 8 - In IE with Chrome Frame, after clicking link for file attachment, Javascript blocked

本文关键字:链接 文件 Javascript explorer Chrome 框架 IE internet      更新时间:2023-09-26

这是一个奇怪的问题。把它扔出去看看有没有人有什么想法。

只有在安装Chrome Frame时,IE才会出现此问题。似乎影响所有版本的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>

以下是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,文件将在新的选项卡中下载ok,而不会破坏主页上的JS。

我尝试将目标指向主页中的iframe,但在这种情况下确实存在问题。

我通过编程创建了一个Iframe,并将url设置为文件下载,而不是使用当前窗口。这就解决了这个问题。

我注意到它被破坏的方式,它使用的是IE下载程序(尽管它是chromeflame)。当我使用iframe时,它使用chrome下载程序。