「_spPageContextInfo」でサイトURLや現在のユーザ情報を取得(SharePoint 2010限定)

Javascriptを使えば、SharePointに大掛かりな「開発」を入れず、簡単な機能であれば比較的容易に実装できます。しかし、時に困るのが、クライアントスクリプトである javascript で、「現在のサイトコレクションのURL」や「サイトのURL」、それに「現在のユーザ」を特定する方法です。

前二つは location + 正規表現で代用できなくはありませんが、最後の「現在のユーザ」は厄介です。実際、以前に掲載した「SharePoint 2007のリストにJavascript で「イイネ」的なボタンを実装する」では、これが難しいためにリスト機能で無理矢理迂回しています。

しかし、SharePoint 2010 では、この情報を「_spPageContextInfo」変数で取得することができるようになりました。

以下、サンプルスクリプトです。コンテンツエディタ等でそのままサイトに埋め込んでみてください。

<script type=”text/javascript” language=”javascript” >
var sitecolUrl = _spPageContextInfo.siteServerRelativeUrl;
var siteUrl = _spPageContextInfo.webServerRelativeUrl;
var userId = _spPageContextInfo.userId;
var language = _spPageContextInfo.webLanguage;
var language_cur = _spPageContextInfo.currentLanguage;
var UIver = _spPageContextInfo.webUIVersion;
var Alerts = _spPageContextInfo. alertsEnabled;
var Silver = _spPageContextInfo. allowSilverlightPrompt;
alert( “1 サイトコレクション : ” + sitecolUrl + “\n2 サイト : ” + siteUrl + “\n3 ユーザID : ” + userId + “\n4 言語 : ” + language + “\n5 言語(現在) : ” + language_cur + “\n6 GUIバージョン : ” + UIver + “\n7 通知 : ” + Alerts + “\n8 シルバーライト : ” + Silver);
< /script>

このように、各変数が取得されます。

取得可能な値は、スクリプトが実行された「場所」により少し変わります。例えば、リストビュー上では、リストのGUIDも取得できます。

実は、何の値を取れるかは、その画面のソースで確認できたりします。ソースを「_spPageContextInfo」で検索してみてください。

残念ながら、アイテムのID値を始めとする列の値は抜けないようです。出来ると毎回Webサービを呼ばなくて済むので便利なのですが。

また、あくまでSharePoint 2010 限定なので、SharePoint 2007 では動作しません。もっとも、それを逆手に取って、スクリプト中でバージョンを識別するのに利用することも出来そうです。

JavascriptでサイトURLをちょいと取得する方法(2007/2010対応)

Understanding the _spPageContextInfo variable in SharePoint 2010

javascript:ロケーション(Location)


これまでのコメント

  1. […] http://sharepointmaniacs.com/archives/3273 Like this:Like一番乗りで「Like」しませんか。 […]

login

Author

中村 和彦(シンプレッソ・コンサルティング株式会社 代表)が「ユーザ視点の SharePoint 情報」を発信します。元大手製造業 SharePoint 運用担当。現SharePoint コンサルタント。お仕事のお問い合わせはこちらまでお願いします。当ブログにおける発信内容は個人に帰属し所属組織の公式発信/見解ではありません。
FB : 中村 和彦
blog: Be・Better!
MS MVP SharePoint 2009/10-2011/9
MS MVP Office 365 2012/10-2014/9