JQuery und SharePoint 2010 - Wie kann ich sagen, dass die Seite im Bearbeitungsmodus mit JavaScript ist?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/4832

Frage

Ich habe ein JavaScript in einem CEWP, das ich nur dann ausführen möchte, wenn sich die Seite im Anzeigemodus befindet. Ich habe Firebug verwendet, um die Seite für eine "MSeditMode" -Typ -Variable oder etwas zu durchsuchen, auf das ich mich verlassen kann.

Ich habe unzählige Fragen und Antworten darüber gesehen, wie man feststellt, ob sich eine Seite im Bearbeitungsmodus befindet, von der Serverseite, aber ich kann keine Lösung finden, um festzustellen, ob sich die Seite im Bearbeitungsmodus und der Client -Seite befindet.

Kann mir jemand in die richtige Richtung verweisen? Muss ich einen Webpart erstellen, der einfach eine solche Variable ausgibt? (Das scheint mir übertrieben zu sein.)

Vielen Dank!

War es hilfreich?

Lösung

Robs Lösung - Blick auf den Knopf - sieht aus wie ein praktikabler Ansatz.

Schauen Sie sich auch meinen Easy Tabs V5 -Code an:

http://www.pathtosharepoint.com/sharepoint-user-toolkit/pages/easy-tabs-v5.aspx

Bei den einfachen Registerkarten habe ich einen anderen Ansatz verwendet, da ich den Code sowohl in SP 2007 als auch in SP 2010 benötigte. Hier sind die Tests, die ich enthalten habe:

p.getAttribute("contenteditable")=="true"; //(where p is a Web Part zone)
document.forms[0].elements["MSOLayout_InDesignMode"].value=="1";
document.forms[0].elements["_wikiPageMode.value"]=="true"; //(wiki page)

Andere Tipps

Ich fand den Blog -Beitrag von Amal Hashim: JavaScript erkennen SharePoint -Seite im Bearbeitungsmodus Es gibt verschiedene Ansätze für Seiten, Wikis und Publishing -Seiten. Ich habe sie zu einer Helferfunktion kombiniert:

function isEditMode() {
    var publishingEdit = window.g_disableCheckoutInEditMode,
        form = document.forms[MSOWebPartPageFormName],
        input = form.MSOLayout_InDesignMode || form._wikiPageMode;  
    return !!(publishingEdit || (input && input.value));
}

Dies kehrt zurück true Wenn die Seite bearbeitet wird, und false Wenn sich die Seite im Ansichtsmodus befindet.

Ein etwas kitschiger Ansatz besteht darin, auf der Seite nach einem Element zu suchen, das sich im Bearbeitungsmodus befindet. Wenn Sie beispielsweise im Bearbeitungsmodus das Band "Bearbeitungstools" angezeigt werden, wird ein Speichersymbol links ausgeschaltet. Wenn Sie die IE -Entwickler -Tools verwenden, sehen Sie den Code für die Schaltfläche Speichern wie folgt:

Mit JQuery können Sie also nach der Existenz von "Speichern und Schließen" auf der Seite überprüfen oder ein anderes Element vollständig auswählen - eines, das eindeutig ist.

Beachten Sie, dass verschiedene Seitentypen (Blogs, Wikis, Web -Teilseiten) unterschiedliche Tags verwenden oder nicht, sodass dies möglicherweise nicht auf der ganzen Linie funktioniert. Überprüfen Sie also die Seite, mit der Sie arbeiten, bevor Sie das Skript einfügen.

Weitere Informationen gefunden. Wenn Sie dies über das Objektmodell tun möchten, prüfen Sie, ob eine dieser Links hilft:

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.publishing.webcontrols.editmodepanel.aspx

Einige Beispielimplementierungen der oben genannten Klasse:http://mystepstones.wordpress.com/2008/09/23/detecting-the-current-mode-displayedit/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit sharepoint.stackexchange
scroll top