2014-10-08 17 views
7

Ich arbeite an SharePoint 2010 und möchte <meta http-equiv="X-UA-Compatible" content="IE=edge"/> für eine bestimmte Seite verwenden. Die Masterseite setzt es auf "IE = 8", was es mir nicht erlaubt, Box-Schatten in CSS zu verwenden, z.X-UA-kompatibles Meta in SharePoint 2010 überschreiben

Ich habe keinen Zugriff auf die Masterpage, um sie zu ändern. Auch ich habe gelesen, dass das Ändern dieser Meta in Master-Seite nicht empfohlen wird, da es Probleme mit anderen Dingen wie Kalender oder was auch immer verursachen könnte.

Also mein Q ist: Gibt es eine Möglichkeit, das X-UA-kompatible Meta-Tag in einer einfachen Seite (.aspx) zu überschreiben?

Antwort

7

Unter den ways to change the compatibility mode für Seite zwei von ihnen scheint vielversprechend:

  • Via X-UA-compatibleHTTP-Header: Der Web-Server ein Vermächtnis Dokumentmodus über einen HTTP-Header angefordert hat.
  • Via X-UA-compatibleMeta-Tag: Der Webseitenentwickler verwendete ein Meta-Tag, um einen älteren Dokumentmodus anzugeben.

Sharepoint-Standard-Master-2010 Seite Hardcodes X-UA-Compatible Meta-Tag und Meta-Tag hat Vorrang vor HTTP-Header, so dass dieser auf HTTP-Ebene durchgeführt werden kann. Dies lässt uns mit der zweiten Option.

Es scheint, dass das erste X-UA-compatible Metatag, das auf der Seite gefunden wird, von IE verwandt wird (obwohl es mehrdeutig in anderen Artikeln ist und in MSDN-Dokumentation fehlt). Wenn Sie SharePoint UserControl oder WebPart schreiben, können Sie diesen Code z.

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

wo HtmlMeta stammt aus System.Web.UI.WebControls Namespace: in Page_Load() Methode, um diesen Header als erstes hinzuzufügen.

Durch Iterieren durch Page.Header.Controls könnten Sie wahrscheinlich auch das Meta-Tag finden und entfernen, das standardmäßig von SharePoint hinzugefügt wurde, obwohl der obige Code ausreicht, um den Edge-Modus in IE11 auszulösen.

+1

könnte dies mit Javascript gemacht werden? – Batman

0

Wenn Sie die Masterseite bearbeiten können und nur die Kompatibilität für bestimmte Seiten ändern möchten, können Sie Buli (Thanks) ähnlich handhaben, aber den vorhandenen Inhalt des Meta-Tags überschreiben. Für Ihren Meta-Tag auf der Seite Master, ihm eine ID und Runat Server

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

In Ihrem Laden der Seite geben, die Steuerung von Master finden, zu HtmlMeta werfen und den Inhalt ändern

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

Wenn Sie die Masterseite bearbeiten können, gibt es kein Problem gibt es? – Mukus