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程式如下:
package com.myfilter;

public class CompatibilityFilter implements Filter {

    @Override
    public void destroy() {
        // TODO Auto-generated method stub
 
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response,
            FilterChain chain) throws IOException, ServletException {
        HttpServletResponse res = (HttpServletResponse) response;
        res.addHeader("X-UA-Compatible", "IE=EmulateIE7");
        chain.doFilter(request, res);
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
    }

}

web.xml設定:
<filter>
        <filter-name>CompatibilityFilter</filter-name>
        <filter-class>com.myfilter.CompatibilityFilter</filter-class>
</filter>

<filter-mapping>
        <filter-name>CompatibilityFilter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

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

留言