Browser setting - 利用過濾器自動設定相容性檢視

假設你在多年前有開發網頁(IE 6,7版本),到現在新的瀏覽器如果還想順利運作這些程式,

也許可以透過相容性檢視設定來達到系統的正常運作!

方法一:

雖然可以在<head></head>之間加入meta tag,但是如果頁面一多就必須得一一加入,實在

不是有效率的方法。

<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/>


方法二:

透過瀏覽器直接將該網站加入至相容性檢視的清單內,雖然可以一勞永逸,但是就必須得

請使用者做這個動作,也不是一個有效的方法!



因此在這邊將以Java Web為例子來解決這個部分。首先,我們可以透過在web.xml內設

定過濾器來達到在進入每個頁面之前,由server端的某一支程式先動作,即回應一header

設定,在此回應之中加入我們要設定的meta tag。如此一來,在載入頁面之前就可以達到設

定好相容性檢視。

Java程式如下:
  1. package com.myfilter;
  2. public class CompatibilityFilter implements Filter {
  3. @Override
  4. public void destroy() {
  5. // TODO Auto-generated method stub
  6. }
  7. @Override
  8. public void doFilter(ServletRequest request, ServletResponse response,
  9. FilterChain chain) throws IOException, ServletException {
  10. HttpServletResponse res = (HttpServletResponse) response;
  11. res.addHeader("X-UA-Compatible", "IE=EmulateIE7");
  12. chain.doFilter(request, res);
  13. }
  14. @Override
  15. public void init(FilterConfig arg0) throws ServletException {
  16. }
  17. }

web.xml設定:
  1. <filter>
  2. <filter-name>CompatibilityFilter</filter-name>
  3. <filter-class>com.myfilter.CompatibilityFilter</filter-class>
  4. </filter>
  5. <filter-mapping>
  6. <filter-name>CompatibilityFilter</filter-name>
  7. <url-pattern>/*</url-pattern>
  8. </filter-mapping>

url-pattern 設定成/*,表示針對所有的瀏覽頁面。

留言