Tôi có một tình huống đặc biệt khi tôi chỉ được kiểm soát nội dung của một tài liệu < cơ thể >. Các máy chủ, tôi giả định trong một nỗ lực để vẫn linh hoạt, không tuyên bố một loại tài liệu mà sẽ ném IE vào chế độ quirks ngay lập tức. Với sự kiểm soát hạn chế của tôi đối với tài liệu, tôi có thể làm gì để buộc IE hiển thị trang ở chế độ tiêu chuẩn?Làm thế nào bạn có thể buộc IE hiển thị ở chế độ tiêu chuẩn nếu bạn chỉ có quyền kiểm soát nội dung của cơ thể?
Trả lời
Tôi tin rằng bạn không thể làm bất cứ điều gì về nó trừ khi bạn nói, viết lại nội dung của trang động với JS và chèn mạnh một loại tài liệu.
Bạn có thể đi vào chi tiết cụ thể về mức độ kiểm soát bạn có trên <body>
không? Bạn có được phép làm JS/scripting không?
EDIT: Đây là một nỗ lực nhưng tôi không thử nghiệm trong IE. Nó có thể cho bạn ý tưởng. Tôi document.write()
số outerHTML
của document.documentElement
và nó biến compatMode thành CSS1Compat.
Bạn có thể cần loại bỏ khối tập lệnh sau khi viết lại. Như tôi đã nói, tôi sẽ không thực sự khuyên bạn cố gắng này ...
http://medero.org/first-line.html
EDIT # 2: Nó có vẻ ngạc nhiên làm việc trong IE6. Nhưng khi làm mới, IE lưu trữ nó bằng cách nào đó và nó vĩnh viễn vẫn ở dạng biên tập .document.write()
của nó. Để chống lại điều đó, hãy nối nó với chuỗi truy vấn, ví dụ: ?203984234
.
Một lần nữa, tôi không chắc tình hình của bạn là gì, nhưng tôi hy vọng điều này mang đến cho bạn những ý tưởng hoặc trợ giúp.
EDIT # 3: Tôi viết lại nó và đóng document.write
đến window.onload
. Bạn sẽ cần phải nối thêm một chuỗi truy vấn duy nhất mỗi khi bạn truy cập nó để xem hiệu ứng, bởi vì nó lưu trữ nó sau nó .write
của nó.
http://medero.org/rewrite.html?f30324433322111
Nếu bạn cần một cái gì đó ngay lập tức nhiều hơn bạn có thể có lẽ Jack DOM chức năng sẵn sàng của jQuery để viết lại nó trước khi tải cửa sổ.
Miscellaneous Ghi chú:
- Bạn có thể có thể che giấu toàn bộ tài liệu html thông qua CSS cho đến khi
document.write
được gọi nếu thị nó quan trọng - Bạn có lẽ nên dải
<script>
document.write trước khi lưuouterHTML
để trang mới được viết không có khốiscript
.
Hãy xem bài viết Defining Document Compatibility này về MSDN. Có lẽ viết ra thẻ meta X-UA-Compatible
sẽ hoạt động.
Kết thúc buổi tiệc, nhưng tôi đã thử siêu tương thích 'X-UA' và nó hoạt động. Tôi đã may mắn khi tôi thử nó mặc dù ... dường như bạn phải đặt nó gần đầu thẻ HEAD của bạn ("Tiêu đề Tương thích X-UA không phân biệt chữ hoa chữ thường, tuy nhiên, nó phải xuất hiện trong tiêu đề của trang web (HEAD phần) trước tất cả các phần tử khác ngoại trừ phần tử title và các phần tử meta khác. "http://goo.gl/xe3Ff). Ngoài ra, IE "lưu trữ" chế độ hiển thị miễn là cửa sổ trình duyệt mở, vì vậy hãy thử đóng và mở cửa sổ của bạn. Tôi có quyền kiểm soát thẻ HEAD mặc dù ... poster gốc không. – thirdender
Dưới đây là cách tôi quản lý để giải quyết nó, based on meder's answer.
Lần đầu tiên tôi thử viết ra số X-UA-Compatible
meta nhưng điều đó không hiệu quả.
Vào cuối của tài liệu (hoặc trong đầu, nhưng tôi không có quyền truy cập vào một trong hai):
<script type="text/javascript">
if (navigator.appName == 'Microsoft Internet Explorer'){
window.onload=function(){
if (document.documentMode == 5){
contents = document.documentElement.outerHTML;
newdoc = document.open("text/html", "replace");
newdoc.writeln('<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">');
newdoc.write(contents);
newdoc.close();
}
};
}
</script>
Các nội if
là để ngăn chặn một vòng lặp vô hạn. Nó có lẽ sẽ tốt hơn để tách ra các mã chính nó, nói bằng cách đặt nó trong một chức năng và loại bỏ các cuộc gọi chức năng với string.replace()
, nhưng tôi không thể có được rằng để làm việc như vậy đã phải giải quyết cho việc này.
- 1. Liệu iframe có hiển thị ở chế độ quirks không?
- 2. Làm thế nào bạn có thể đổ nội dung của Clojure REPL vào một tệp?
- 3. Làm cách nào để bạn kiểm soát nội dung hiển thị trong lưới thuộc tính khi chạy?
- 4. Bạn có nên hiển thị lưới nếu ô trống không?
- 5. Có bao nhiêu chế độ hiển thị trên IE?
- 6. nếu div có nội dung hiển thị div
- 7. Chế độ trình duyệt bắt buộc = IE8 và chế độ tài liệu = Tiêu chuẩn IE8
- 8. Thẻ meta chế độ tiêu chuẩn IE8
- 9. Làm thế nào bạn có thể xóa văn bản cũ trong Chế độ chèn trong GVIM
- 10. EventMachine - làm thế nào bạn có thể biết nếu bạn đang tụt lại phía sau?
- 11. Bạn có thể sử dụng UIAppearance để đặt chế độ xem tiêu đề của UINavigationItem không?
- 12. Bạn có thể chạy ứng dụng VB ở chế độ toàn màn hình không?
- 13. Làm thế nào để bạn làm điều gì đó sau khi bạn hiển thị chế độ xem? (Django)
- 14. Làm thế nào để bạn buộc Internet Explorer tải Trình gỡ lỗi nội dung Adobe Flash?
- 15. Làm thế nào để bạn xác định loại nội dung của bạn trong ASP.NET WebForms?
- 16. Bạn có thể hiển thị tệp không có phần mở rộng .jsp dưới dạng JSP không?
- 17. Nội dung nào không thể FTP được an toàn ở chế độ nhị phân?
- 18. Bạn có thể tạo kiểu nội dung trong Firefox như thế nào?
- 19. WPF DataGrid: Làm thế nào để bạn có được nội dung của một ô?
- 20. Làm thế nào để bạn đặt kích thước nội dung của UIPopoverController?
- 21. ViewModel của tôi có thể xem ObservableCollection của Chế độ xem hoặc Chế độ xem không?
- 22. Làm thế nào bạn có thể buộc biên dịch lại jsps trong JBoss 4.2?
- 23. Tôi có thể tìm thấy bộ thử nghiệm có thẩm quyền cho tiêu chuẩn HTML5 ở đâu?
- 24. Tôi có thể viết nội tuyến nếu có nội dung HTML không?
- 25. Có thể hiển thị nội dung của tệp văn bản trong Crystal Reports
- 26. Làm thế nào bạn có thể cấu hình nowjs?
- 27. Làm cách nào để hiển thị lại Chế độ xem thông báo "Bạn muốn gửi cho bạn thông báo đẩy"?
- 28. Làm thế nào để bạn thay đổi kích thước nội dung văn bản của Silverlight?
- 29. buộc trang web chỉ hiển thị ở chế độ nằm ngang
- 30. Nếu có thể làm thế nào có thể nhúng PostgreSQL?
Tôi nghi ngờ điều này sẽ hiệu quả. Trang đã được hiển thị. Nếu bạn tự động thêm một loại tài liệu, IE sẽ phải phát hiện ra và chọn để trở lại trang. Nếu IE có khả năng làm điều đó, tôi sẽ nghĩ rằng thuộc tính 'document.documentMode' sẽ không được đọc. –
Tôi đã cập nhật một lần. –
Thú vị, có vẻ như nó thực sự hoạt động, đáng sợ như vậy. Thêm một div với lề và đệm và xem nó thay đổi kích thước như mô hình hộp của IE thay đổi. –