2011-10-27 22 views
15

Tôi đang sử dụng thư viện vẽ sơ đồ Flot. Dường như nó hoạt động tốt trong IE8 và IE9 nhưng vấn đề xảy ra khi trong Chế độ xem tương thích IE9 - nó không hiển thị bất kỳ biểu đồ nào. Tôi nghi ngờ điều này là do đối tượng HTML5 canvas nó sử dụng nhiều nhưng tôi có thể sai. Tôi đã thử làm như sau:Dường như không thể loại bỏ Chế độ xem tương thích?

  • Thêm: <meta http-equiv="X-UA-Compatible" content="IE=Edge" /> vào thẻ HTML <head></head> của tôi. Tôi thậm chí đã thử IE=8IE=9 và điều đó cũng không giúp được gì. thẻ nhìn tôi như thế này:

    <!DOCTYPE html PUBLIC "-W3CDTD XHTML 1.1EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
        <meta http-equiv="X-UA-Compatible" content="IE=8" /> 
        ... 
    </head> 
    <body> 
    ... 
    </body> 
    </html> 
    
  • Bởi vì tôi vẫn còn nhìn thấy được vấn đề, tôi đã thêm dòng sau vào tập tin Global.asax.cs của tôi:

    void Application_End(object sender, EventArgs e) 
    { 
        // Code that runs on application shutdown 
        Response.Headers.Add("X-UA-Compatible", "IE=Edge"); 
    } 
    

tôi vẫn đang đối mặt với vấn đề. Lỗi tôi nhận được là:

HTML1202: http://intranetdomain/SampleProj/Default.aspx is running in Compatibility View because 'Display intranet sites in Compatibility View' is checked. 
Default.aspx 
HTML1113: Document mode restart from IE7 Standards to IE9 Standards 
Default.aspx 

Có cách nào để vượt qua chuyến đi này không?

EDIT: Kiểm tra tiêu đề phản hồi của tôi, thêm dòng đó vào Global.asax.cs không thêm chúng vào tiêu đề của tôi. Tôi tự hỏi tại sao.

Tiêu đề phản hồi:

Key Value 
Response HTTP/1.1 200 OK 
Cache-Control private 
Content-Type text/html; charset=utf-8 
Server Microsoft-IIS/7.5 
X-AspNet-Version 4.0.30319 
X-Powered-By ASP.NET 
Date Thu, 27 Oct 2011 20:39:55 GMT 
Content-Length 29088 

EDIT 2: Rõ ràng, Application_End là sự kiện sai. Thay vào đó, việc này đã chèn phần tử vào tiêu đề:

void Application_BeginRequest(object sender, EventArgs e) 
{ 
    Response.Headers.Add("X-UA-Compatible", "IE=Edge"); 
} 

Nhưng bản thân vấn đề vẫn tồn tại.

+1

bạn đã thử thêm nó như là thẻ đầu tiên sau khi ' '? IE chỉ có vẻ phản ứng với điều này khi nó xuất hiện đầu tiên trong danh sách các thẻ meta. – SliverNinja

+0

@SliverNinja: Có. Tôi có nó như là thẻ đầu tiên của tôi. Cũng cập nhật câu hỏi của tôi với đánh dấu chính xác mà tôi đang sử dụng. – Legend

+0

Nên làm việc sau đó theo phản hồi phổ biến ở đây (http://stackoverflow.com/questions/637039/how-to-avoid-ie8-compatibility-button). – SliverNinja

Trả lời

28

Sự cố có thể do cài đặt chế độ xem tương thích Internet Explorer của bạn. Nếu bạn chuyển đến menu "Công cụ", sau đó đến "Cài đặt chế độ xem tương thích", hãy đảm bảo rằng "Hiển thị trang web mạng nội bộ trong Chế độ xem tương thích" là không phải là được chọn. Bạn có thể thấy IE buộc bạn vào chế độ xem tương thích dựa trên tên máy chủ của bạn đang được phát hiện như đang ở trong mạng nội bộ của bạn.

Lưu ý rằng - tùy thuộc vào phiên bản IE của bạn - bạn có thể phải bấm phím bên trái Alt để thanh menu xuất hiện, từ đó trình đơn "Công cụ" có thể được mở.

+0

Có Trong khi tôi có thể thay đổi điều này cho bản thân mình, tôi đang cố gắng để ghi đè lên thiết lập này (mặc dù tôi không phải là nó có ý nghĩa nhiều) .Tôi thậm chí không thể phát hiện chế độ này bởi vì kiểm tra này: 'if ($ .browser.msie && parseInt ($. browser.version)! = 9) {alert ("Không phải IE9!"} 'không bắt được thực tế là IE9 đang ở chế độ Tương thích. – Legend

+1

Tôi không nghĩ bạn có thể ghi đè khả năng tương thích đó Xem các nhận xét trên http://stackoverflow.com/questions/3726357/why-does-ie9-switch-to-compatibility-mode-on-my-website/3726605#3726605 – Jacob

+1

Nếu bạn đang chạy tại địa phương hãy chắc chắn bạn giả mạo URL 'tìm kiếm trực tiếp' thông qua hostfile của bạn và nó w bệnh suy nghĩ trang web là một trang web internet. – sidonaldson

0

Điều kỳ lạ là - nếu bạn xóa runat="server", thẻ meta sẽ hoạt động và nút sẽ biến mất. BNut tất nhiên nó không được khuyến khích để xóa runat.

3

Bạn có thể đặt cài đặt tương thích trực tiếp trên IIS. Nếu bạn nhấp vào trang web và mở Tiêu đề phản hồi, bạn có thể thêm X-UA-Tương thích với giá trị của IE = X, trong đó X là phiên bản đích của bạn. Bạn cũng có thể thiết lập ở cấp độ máy chủ. Nhưng hãy nhớ nếu bạn có nhiều trang web trên cùng một hộp, bạn có thể gặp sự cố với các trang đó. Bạn có thể áp dụng ở cấp độ máy chủ và sau đó xóa cấu hình kế thừa từ cấp trang web.

+1

Điều này không thể ghi đè lên IE khi nghĩ rằng trang web là trang web mạng nội bộ! – sidonaldson

+1

Điều này làm việc cho tôi. Tôi đang sử dụng IIS Express cục bộ để phát triển một trang web với JQuery 2. Nó không tương thích với chế độ IE 7 mà IE 10 dường như mặc định cho trang web cục bộ. Mở tệp cấu hình% UserProfile% \ My Documents \ IISExpress \ config \ applicationhost.config và . Xem http://msdn.microsoft.com/en-us/library/jj676913(v=vs.85).aspx –

2

Hai năm và hai phiên bản mới của IE sau này và sự cố IE8 này vẫn gây ra sự cố!

Tôi thấy rằng, đối với ứng dụng ASP.Net của công ty chúng tôi, thêm "X-UA-Tương thích" trong web.config, trong các trang web hoặc mã của chúng phía sau, hoàn toàn không có sự khác biệt.

Điều duy nhất mà làm việc cho chúng ta được tự unticking các "bộ intranet hiển thị trong Compatibility View" hộp kiểm:

Turn off Display intranet sets in Compatibility View

+0

Tương tự ở đây ... tôi không muốn tất cả người dùng bỏ chọn hộp kiểm này :( –

Các vấn đề liên quan