jQuery and SharePoint 2010- JavaScriptを使用して、ページが編集モードであることを知るにはどうすればよいですか?
-
16-10-2019 - |
質問
CEWPには、ページが表示モードにあるときにのみ実行したいJavaScriptがあります。 FireBugを使用して、「mseditmode」タイプの変数または依存できるもののためにページを精査しました。
サーバー側からページが編集モードであるかどうかを見分ける方法について、たくさんの質問と回答を見てきましたが、ページが編集モードであるかどうかを示す方法の解決策はありません。クライアント側です。
誰かが私を正しい方向に向けることができますか?そのような変数を単に放出するWebパーツを作成する必要がありますか? (それは私にはやり過ぎのようです。)
本当にありがとう!
解決
ロブの解決策 - ボタンを見る - は、実行可能なアプローチのように見えます。
また、簡単なタブV5コードを見てください。
http://www.pathtosharepoint.com/sharepoint-user-toolkit/pages/easy-tabs-v5.aspx
簡単なタブの場合、SP 2007とSP 2010の両方で動作するためにコードが必要だったため、別のアプローチを使用しました。以下は、以下をテストします。
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)
他のヒント
Amal Hashimのブログ投稿を見つけました: JavaScript編集モードでSharePointページを検出します ページ、Wikis、Publishing Pagesにはさまざまなアプローチがあります。それらを1つのヘルパー関数に組み合わせました。
function isEditMode() {
var publishingEdit = window.g_disableCheckoutInEditMode,
form = document.forms[MSOWebPartPageFormName],
input = form.MSOLayout_InDesignMode || form._wikiPageMode;
return !!(publishingEdit || (input && input.value));
}
これは戻ります true
ページが編集されている場合 false
ページがビューモードにある場合。
やや安っぽいアプローチは、ページが編集モードにあるときに存在するページ上の要素を探すことです。たとえば、編集モードで「編集ツール」リボンが表示され、左側に保存アイコンが表示されます。 IE開発者ツールを使用すると、保存ボタンのコードが次のようになります。
したがって、jQueryを使用すると、ページに「保存と閉じる」の存在を確認するか、完全に別の要素を選択してください - ユニークな要素。
さまざまなページタイプ(ブログ、Wikis、Webパーツページ)は、異なるタグを使用する場合と使用しない場合があるため、これは全面的に機能しない場合があることに注意してください。したがって、スクリプトを含める前に、使用しているページを再確認してください。
詳細を見つけました。オブジェクトモデルを介してそれを行いたい場合は、これらのリンクのいずれかが役立つかどうかを確認してください。
前述のクラスの実装の例:http://mystepstones.wordpress.com/2008/09/23/detecting-the-current-mode-displayedit/