2012-09-28 49 views
25

Tôi có một trang đó sẽ được bao gồm trong một iframe trên một trang mà họ sử dụng như sau:Cố gắng sử dụng IE = cạnh X-UA-Tương thích trong một iframe trên một trang sử dụng IE = EmulateIE7

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

và lý tưởng tôi muốn hiển thị trang của mình bằng chế độ tiêu chuẩn mới nhất có sẵn cho trình duyệt mà người dùng đang sử dụng. Điều này có thể không?

Tôi đã thử bao gồm

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

trên trang của mình, cũng như thay đổi webapp của tôi bao gồm các tiêu đề HTTP 'X-UA-Tương thích' với giá trị của 'IE = cạnh', nhưng tôi không thể dường như không làm được điều tôi muốn.

Điều kỳ lạ là, ở đây là nếu ví dụ tôi có hai trang, là người đầu tiên chứa iframe và người kia là những gì đang hiển thị trong khung nội tuyến, như vậy:

<!doctype html> 
<html> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7"/> 
    <script> 
     console.log("Page document mode: "+document.documentMode); 
    </script> 
</head> 
<body> 
<iframe src="iframepage.html" /> 
</body> 
</html> 

<!doctype html> 
<html> 
<head> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <script> 
     console.log("Iframe document mode: "+document.documentMode); 
    </script> 
</head> 
<body> 
</body> 
</html> 

Đầu ra là khá bất ngờ

Page document mode: 7 
Iframe document mode: 8 

Chế độ tài liệu 8 đến từ đâu? Và làm cách nào để tôi tạo tài liệu iframe thành 9 hoặc cao hơn?

Tôi sẽ luôn biết ơn nếu ai đó có thể chỉ cho tôi đúng hướng !! cảm ơn, Nick

+1

Tôi có cùng một vấn đề chính xác. Bạn đã tìm thấy một giải pháp ? –

+0

Thật không may, tôi sợ không – eldoctoro

+0

Chỉ cần đoán, nhưng một vài điều để thử sẽ là 1) thiết lập IE = 9 chứ không phải là cạnh, và/hoặc 2) bằng cách sử dụng tiêu đề http tương thích X-UA, thay vì thẻ meta –

Trả lời

21

IE không cho phép trộn IE9 + và các chế độ cũ hơn trong cấu trúc phân cấp khung. Nếu tài liệu hàng đầu của bạn là IE7, mức cao nhất bạn có thể nhận được trong bất kỳ tài liệu bên trong nào là IE8. Tương tự, bạn sẽ không thể lưu trữ bất cứ thứ gì ngoài tài liệu chế độ IE9 bên trong trang chế độ IE9.

+2

Nó xuất hiện mặc dù, nó có thể kết hợp các chế độ theo cách khác vòng: trang chính trong chế độ tiêu chuẩn, khung trong chế độ tương thích: http://stackoverflow.com/q/18976213/1768303 – Noseratio

+0

Điều quan trọng là xem xét nguồn gốc về các vấn đề dễ bị nhầm lẫn như thế này: http://msdn.microsoft.com/en-us/library/jj676915(v=vs.85).aspx – Luke

+2

@Noseratio Tôi đã xem ví dụ của bạn trong câu hỏi khác, và tôi tin vào khung bên trong của bạn, bạn không nhìn thấy một chế độ IE5 \ Quirks đúng, mà là một cái gì đó gọi là "Hầu hết các chế độ tiêu chuẩn", gần giống như tiêu chuẩn ngoại trừ hành vi của bảng mà bạn đề cập. Thông tin thêm tại đây: http://msdn.microsoft.com/en-us/library/ff405912(v=vs.85).aspx. Thật tuyệt vời nếu điều này phù hợp với bạn, nhưng những thứ khác ngoài bảng sẽ không hoạt động như bạn mong đợi từ một chế độ cũ thuần túy. –