2012-11-24 25 views
5

tôi có thể mở một hộp thoại như thế này trong jQuery:jQuery vị Yêu cầu <! DOCTYPE HTML>

position: { 
    of: $("#Parent"), 
    my: "left top", 
    at: "left top" 
} 

này hoạt động tốt trong FF, nhưng trong IE9 nó chỉ hoạt động khi các loại tài liệu được thiết lập để <!DOCTYPE HTML> và không khác như sau:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 

Dường như tất cả các loại tài liệu khác đều đặt IE ở chế độ quirks.

Vấn đề là sử dụng <!DOCTYPE HTML> làm hỏng ActiveWidgets; lưới sẽ không hiển thị trong bất kỳ trình duyệt nào.

Tôi có thể định vị jQuery hoạt động mà không cần <!DOCTYPE HTML> trong IE không? Hoặc tôi có thể làm cho ActiveWidgets hoạt động với DOCTYPE được đề xuất này không?


Cảm ơn câu trả lời

Sau khi dành một ngày để thay thế activeWidgets lưới bởi jqwidgets, cuối cùng tôi không thích kết quả. Tôi sử dụng các mẫu PHP để tạo lưới động từ các tệp văn bản ini.

Tôi đã kết thúc chia tài liệu của mình thành 2 iframe. Một với các hộp thoại và khác với lưới

theo cách như vậy tôi không thể di chuyển hộp thoại bên ngoài khung nhưng nó hoạt động

đây là cộng đồng lớn đã giúp tôi rất nhiều thiết kế trang web Intranet lớn nhờ

+0

bạn có chạy trang thông qua trình xác thực w3c để đảm bảo rằng bạn không có thẻ bị hỏng ở đâu đó không? 'ActiveWidgets' là gì? – charlietfl

+5

Có vẻ như bạn có một số mã phụ thuộc vào Chế độ tiêu chuẩn và ActiveWidgets làm thư viện của bên thứ ba phụ thuộc vào chế độ Quirks.Bạn không thể có cả hai chế độ hoạt động trong cùng một tài liệu, vì vậy hành động thích hợp là thay thế ActiveWidgets bằng một cái gì đó được thiết kế hợp lý thay vì là một mớ hỗn độn không chuyên nghiệp. (Dựa trên mô tả của ActiveWidgets - thay thế bằng YUI, jQuery UI hoặc Dojo) – Quentin

Trả lời

0

Bạn có thể buộc MSIE đối với phiên bản mới nhất có sẵn bằng thẻ meta này bên trong đầu của bạn>:

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

tldr; sử dụng một hợp lệ/nhận DOCTYPE để đảm bảo không Quirks chế độ

Các HTML4 DOCTYPE chuyển listed in the W3C informational referencebao gồm DTD URI:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

mỗi danh sách chế độ-ma trận trong bài viết Quirks mode wikipedia <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> (không có số nhận dạng hệ thống) sẽ đặt IE8 + vào chế độ Quirks. Rất tiếc.

(Lưu ý rằng ngay cả với mã định danh hệ thống chuyển tiếp, nó vẫn ở chế độ Hầu hết các tiêu chuẩn! Tốt nhất là sử dụng DTD nghiêm ngặt và/hoặc DOCTYPE HTML5 để trình duyệt gần đây sẽ chạy ở chế độ Chuẩn).

Xem nhận xét của Quentin về một số giải pháp - sau khi sửa DOCTYPE để đảm bảo chế độ Chuẩn/Chuẩn.

+0

Cảm ơn người trả lời – Ben

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