1. 程式人生 > >在IE6中JS不執行的問題處理

在IE6中JS不執行的問題處理

I E6,當超連結在本頁面跳轉時,空白頁,需要重新整理才正常顯示,最後在程式碼中加入了header('Cache-Control: post-check=0, pre-check=0');header('Pragma: no-cache');終於正常了。今天更詭異的事情發生了,當在新頁面跳轉顯示js時,竟然又空白頁了,氣死我了。上網搜搜,找到原因了: 如果是靜態JS的話,還真是需要在apache伺服器端做設定才行,cache和gzip壓縮還不能同時輸出給IE6瀏覽器。 PHP動態程式也可以通過程式修改header來完成,如:header('Cache-Control: post-check=0, pre-check=0');header('Pragma: ');有人詳細做了解釋:程式使用JS方式在<script src="***"> 引用,從瀏覽器請求中看,是呼叫了伺服器端程式並且有返回,只是返回的內容沒有被瀏覽器使用JS引擎進行解釋執行。這是瀏覽器的一個BUG,調整程式輸出的頭資訊(cache和gzip)就正常了。 可以考慮把 apache 的配置調整一下,下面的這個輸出中,去掉 no-cache,no-store 或者去掉 gzip壓縮?Cache-Control: no-cache, no-store, max-age=0, must-revalidate, max-age=0Content-Encoding:  gzip另外,可以參考http://www.javaeye.com/topic/543572 <?php ob_start('ob_gzip'); ?><?php//header('Cache-Control: no-cache, no-store, max-age=0, must-revalidate');header('Cache-Control: post-check=0, pre-check=0');header('Pragma: ');print 'func("11");' ;ob_end_flush();//壓縮函式function ob_gzip($content){if(!headers_sent()&&extension_loaded("zlib")&&strstr($_SERVER["HTTP_ACCEPT_ENCODING"],"gzip")){$content = gzencode($content,9);header("Content-Encoding: gzip");header("Vary: Accept-Encoding");header("Content-Length: ".strlen($content));}return $content;}?>