59

Có cách nào để buộc IE8 vào chế độ tương thích IE7 bằng .NET hoặc Javascript không?Buộc IE8 vào Chế độ Tương thích IE7

+1

Ngoài ra, tôi có thể thực hiện điều này bằng cách sử dụng cài đặt IIS không? – Bryan

+10

Tôi đoán tôi có thể thấy giá trị trong này cho các trang cũ, nhưng XIN không tạo các trang mới phụ thuộc vào IE7 ... để cho con thú chết. –

+0

IE8 có lỗi mà IE7 không có và biến mất khi chuyển sang chế độ tương thích: http://stackoverflow.com/questions/1070178/why-does-ie8-add-bottom-border-on-my-image- anchor-tag Trang web của tôi bị ảnh hưởng bởi lỗi đó và tôi muốn cho IE8 hiển thị chính xác như IE7 và mọi trình duyệt khác thực hiện bằng cách thêm một dòng vào tệp .htaccess của tôi, thay vì thêm một giải pháp cụ thể cho trình duyệt vào các trang thực tế. –

Trả lời

85

Nếu bạn thêm video này vào các thẻ meta của bạn:

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

IE8 sẽ làm cho trang như IE7.

+22

Bạn nói đúng - nhưng hãy thử thêm ngay sau thẻ mở . Tôi đã có vấn đề khi nó được tiếp tục xuống trang. –

+1

Điều gì sẽ xảy ra nếu tôi không thêm dòng này vào mọi trang aspx trên trang web của mình. Tôi có thể làm điều đó với IIS? – Bryan

+5

@Bryan: Không. Đây là lý do tại sao chúng tôi sử dụng trang chính. – NotMe

5

thậm chí nó đơn giản hơn thế. Sử dụng HTML bạn chỉ có thể thêm metatag này vào trang của bạn (điều đầu tiên trên trang):

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

Nếu bạn muốn làm điều đó using.net, bạn chỉ cần gửi yêu cầu http của bạn với thông tin meta trong tiêu đề. Điều này sẽ yêu cầu một trang làm mới mặc dù.

Ngoài ra, bạn có thể nhìn vào một câu hỏi tương tự ở đây: Compatibility Mode in IE8 using VBScript

11

an HTTP header bạn có thể thiết lập mà sẽ buộc IE8 sử dụng chế độ IE7 tương thích.

+1

Tôi không thể lấy thẻ meta để làm việc, nhưng việc thêm tiêu đề này đã thực hiện công việc. Cảm ơn! – swatkins

1

Lưu ý về điều này:

Thi đua IE 8.0 chỉ hứa hẹn hiển thị trang giống nhau. Có những khác biệt tinh tế có thể khiến chức năng bị hỏng. Gần đây tôi đã có một vấn đề với điều đó. Trong trường hợp IE 7.0 sử dụng một hàm bao bọc javascript có tên là "anonymous()" trong IE 8.0, trình bao bọc được đặt tên khác nhau.

Vì vậy, tôi không mong đợi những thứ như JavaScript "chỉ hoạt động", bởi vì bạn bật mô phỏng.

+5

Viết mã phụ thuộc vào "tên" của một chức năng ẩn danh không phải là một phụ thuộc đáng tin cậy để thực hiện, bất kể phiên bản trình duyệt. – EricLaw

5

một nhiều hơn nếu bạn muốn chuyển sang IE 8 hiển thị trang trong IE 8 chế độ tiêu chuẩn

<meta http-equiv="X-UA-Compatible" content="IE=100" /> <!-- IE8 mode --> 
30

Bạn có thể làm điều đó trong web.config

<httpProtocol> 
     <customHeaders> 
      <add name="X-UA-Compatible" value="IE=7"/> 
     </customHeaders> 
    </httpProtocol> 

Tôi có kết quả tốt hơn với hơn này các giải pháp trên. Không chắc tại sao điều này không được đưa ra như một giải pháp. :)

+0

+1 Giải pháp tốt, nếu bạn đang sử dụng IIS7 - http://www.iis.net/ConfigReference/system.webServer/httpProtocol –

+0

Giải pháp tuyệt vời khi bạn không thể thay đổi nội dung của trang hoặc thay đổi tiêu đề trang trực tiếp . –

+0

Tôi nghĩ tiêu đề HTTP ghi đè bất kỳ thẻ meta nào, vì vậy chúng phải là giải pháp ưu tiên nếu bạn có tùy chọn. – Matthew

1

Điều này có thể được thực hiện trong IIS: http://weblogs.asp.net/joelvarty/archive/2009/03/23/force-ie7-compatibility-mode-in-ie8-with-iis-settings.aspx

Đọc các ý kiến ​​cũng như: Thứ Tư 1 Tháng Tư, 2009 08:57 John Moore

Một cách nhanh chóng theo dõi. Điều này làm việc tuyệt vời cho trang web của tôi miễn là tôi sử dụng giá trị IE = EmulateIE7. Cố gắng sử dụng IE = 7 dẫn đến trang web của tôi về cơ bản treo khi chạy trên IE8.

0

mã của tôi có thẻ này

meta http-equiv = "X-UA-Tương thích" content = "IE = 7" />

là có một cách nơi tôi có thể bỏ qua thẻ này và chưa bố trí được hiển thị tốt và tốt sử dụng thẻ đó màn hình sẽ hoạt động tối đa IE 7 nhưng tôi muốn chạy nó ở các phiên bản khác ...

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