2014-09-19 5 views
10

Hat jemand anderes ein Problem mit der neuesten Version von Safari 7.1 auf Mac und iOS8 festgestellt, das ein ASPMenu-Steuerelement in SharePoint 2010 unterbricht? Das ASPMenu funktionierte vorher gut, aber nach dem Update hat es sich entschieden, den Inhalt falsch darzustellen. Ich habe versucht, das Page.ClientTarget = "uplevel" einzustellen, sowie die compat.browser-Datei zu ändern, um den Adapter "System.Web.UI.WebControls.Menu" für Safari einzuschließen, aber keine Option hilft, das Problem zu beheben.ASPMenu in Safari 7.1 Richtiges Rendern in SharePoint 2010

Kann jemand helfen? Das Menü funktionierte vor dem Safari-Update einwandfrei. Vielen Dank!

+0

Es ist erwähnenswert, dass diese in Sharepoint 2007 das gleiche Problem beheben mit Safari 6.2. Es gab eine Antwort, die erwähnte, dass mit 2007 gearbeitet wurde, die gelöscht wurde. Ich hätte keine Lösung für mein Problem mit SP 2007 gefunden, wenn ich diese Antwort nicht gesehen hätte. – stoj

Antwort

16

Beendet herauszufinden, was das Problem war. In der Vergangenheit war die Browser-ID, die der Server für Safari sehen würde, "Safar1Plus". Dies korreliert mit dem Eintrag in der Datei compat.browser wie aufgelistet:

<browser id="Safari2" parentID="Safari1Plus"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" /> 
    </controlAdapters> 
</browser> 

Safari 7.1 nicht mehr Bindungen an die dieser Browser-ID und wurde nun auf „Safari60“ aktualisiert. Ich fand dies heraus durch einen einfachen Befehl in Javascript meiner benutzerdefinierten Sharepoint-Seite tun:

alert("<%=Request.Browser.Id %>"); 

Dies hat mir gesagt, die neue Browser-ID, die der Server sieht. Es berichtete zurück als "Safari60". Ich ging dann zurück in die compat.browser Datei unter meiner Web-Anwendung und hat einen neuen Browser und referenziert die neue Browser-ID:

<browser refID="Safari60"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.WebControls.Menu" adapterType="" /> 
    </controlAdapters> 
</browser> 

Sobald ich die compat.browser Datei mit diesem neuen Zusatz gespeichert, Safari 7.1 wurde jetzt glücklich und rendering das ASPMenu wie es in der Vergangenheit hat. Hoffentlich hilft das!

Die Standardposition der SP-Browser-Definitionsdatei ist in „C: \ Inetpub \ wwwroot \ wss \ Virtual \\ App_Browsers \ compat.browser“

+0

Das ist eine tolle Antwort. Für weitere Informationen darüber, warum dies geschieht (und zu anderen Problemen, die Sie möglicherweise mit iOS 8 sehen), ist http://stackoverflow.com/a/25979199/3486353 auch sehr hilfreich. –