2014-10-08 22 views
7

Sto lavorando su SharePoint 2010 e voglio utilizzare per una pagina specifica. La pagina master lo sta impostando su "IE = 8" che non mi permette di usare box-shadow in CSS, ad es.sovrascrive meta X-UA-compatibile in SharePoint 2010

Non ho accesso alla pagina master per cambiarlo. Inoltre ho letto che cambiare quella meta nella pagina principale non è raccomandato in quanto potrebbe causare problemi con altre cose come calendari o qualsiasi altra cosa.

Quindi la mia Q è: c'è un modo per sovrascrivere il meta tag X-UA-Compatible in una pagina semplice (.aspx)?

risposta

7

Tra i ways to change the compatibility mode per la pagina due di loro sembra promettente:

  • Via X-UA-compatibleHTTP intestazione: Il server web ha richiesto una modalità documento legacy tramite un header HTTP.
  • Via X-UA-compatiblemeta tag: lo sviluppatore della pagina Web ha utilizzato un metatag per specificare una modalità documento legacy.

SharePoint 2010 di pagina master predefinito hardcodes X-UA-Compatible meta tag e meta tag ha la precedenza su HTTP, quindi questo non può essere fatto a livello HTTP. Questo ci lascia con la seconda opzione.

Sembra che il primo meta tag X-UA-compatible rilevato nella pagina sia utilizzato da IE (anche se è ambiguo in articoli diversi e manca nella documentazione MSDN). Se scrivi SharePoint UserControl o WebPart, potresti aggiungere questo codice, ad es. in Page_Load() metodo per aggiungere questa intestazione come il primo:

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

dove HtmlMeta viene da System.Web.UI.WebControls namespace.

Se si itera attraverso Page.Header.Controls, è probabile che sia possibile trovare e rimuovere il metatag aggiunto per impostazione predefinita da SharePoint, anche se il codice precedente sembra sufficiente per attivare la modalità Edge in IE11.

+1

Potrebbe questo essere fatto con javascript? – Batman

0

Se è possibile modificare la pagina principale e modificare solo la compatibilità per pagine specifiche, è possibile adottare un approccio simile a buli (grazie) ma sovrascrivere il contenuto esistente del metatag. Per la vostra meta tag nella pagina master, dargli un id e un server runat

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

Nella tua caricamento della pagina, trovare il controllo da maestro, cast HtmlMeta e modificare il contenuto

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

se è possibile modificare la pagina principale quindi non c'è nessun problema c'è? – Mukus