2014-10-08 17 views
7

Tôi đang làm việc trên SharePoint 2010 và tôi muốn sử dụng <meta http-equiv="X-UA-Compatible" content="IE=edge"/> cho một trang cụ thể. Trang chính đang đặt thành "IE = 8" không cho phép tôi sử dụng bóng đổ trong CSS, ví dụ:ghi đè siêu tương thích X-UA trong SharePoint 2010

Tôi không có quyền truy cập vào trang chính để thay đổi nó. Ngoài ra tôi đã đọc rằng việc thay đổi meta trong trang chính không được khuyến khích vì nó có thể gây ra vấn đề với những thứ khác như lịch hoặc bất cứ điều gì.

Vì vậy, câu hỏi của tôi là: có cách nào ghi đè thẻ meta tương thích X-UA trong một trang đơn giản (.aspx) không?

Trả lời

7

Trong số các ways to change the compatibility mode cho trang hai trong số họ có vẻ đầy hứa hẹn:

  • Via X-UA-compatibletiêu đề HTTP: Các máy chủ web đã yêu cầu một chế độ tài liệu di sản thông qua một HTTP header.
  • Qua X-UA-compatiblethẻ meta: Nhà phát triển trang web đã sử dụng thẻ meta để chỉ định chế độ tài liệu cũ.

Mã lỗi trang chủ mặc định của SharePoint 2010 X-UA-Compatible thẻ meta và thẻ meta được ưu tiên hơn tiêu đề HTTP, vì vậy điều này không thể thực hiện được ở cấp HTTP. Điều này khiến chúng tôi có tùy chọn thứ hai.

Dường như thẻ meta X-UA-compatible đầu tiên gặp phải trên trang được IE sử dụng (mặc dù nó không rõ ràng trong các bài viết khác nhau và thiếu trong tài liệu MSDN). Nếu bạn viết SharePoint UserControl hoặc WebPart, bạn có thể thêm mã này, ví dụ: trong Page_Load() phương pháp để thêm tiêu đề này là một trong những đầu tiên:

HtmlMeta metaEdgeIE = new HtmlMeta(); 
metaEdgeIE.HttpEquiv = "X-UA-Compatible"; 
metaEdgeIE.Content = "IE=EDGE"; 
Page.Header.Controls.AddAt(0, metaEdgeIE); 

nơi HtmlMeta đến từ System.Web.UI.WebControls namespace.

Bằng cách lặp qua Page.Header.Controls, bạn có thể cũng tìm và xóa thẻ meta được mặc định bởi SharePoint, mặc dù mã ở trên dường như đủ để kích hoạt chế độ Edge trong IE11.

+1

Could này được thực hiện với javascript? – Batman

0

Nếu bạn có thể chỉnh sửa trang chính và chỉ muốn thay đổi tính tương thích cho các trang cụ thể, bạn có thể có cách tiếp cận tương tự với buli (thanks) nhưng ghi đè nội dung hiện có của thẻ meta. Đối với thẻ meta của bạn trong trang chủ, cung cấp cho nó một id và runat máy chủ

<meta id="metaIE" runat="server" http-equiv="X-UA-Compatible" content="IE=edge"> 

Trong tải trang của bạn, tìm ra điều khiển từ thạc sĩ, diễn viên đến HtmlMeta và thay đổi nội dung

Dim metaIE = DirectCast(Master.FindControl("metaIE"), HtmlMeta) 
metaIE.Content = "IE=10" 
+0

nếu bạn có thể chỉnh sửa trang chính thì không có vấn đề gì? – Mukus

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