2007年06月03日

リスト アイテムの編集メニューにカスタムメニューの追加 (お手軽編) の完成?

 ということで、を入れました・・・ (→ リスト アイテムの編集メニューにカスタムメニューの追加 (お手軽編))

もっと簡単に出来るかなと思っていましたが、意外と手間取ってしまいました。
使えそうだった navigateMailToLink 関数をそのまま流用してしまったことによる副作用と、件名の文字化け対応に工夫が要りました。

結果的には、以下のようなコードになりました。
リストの Web パーツをサイトのページに組み込み、ビューの列に編集メニューを設定しておき、「コンテンツ エディタ」Web パーツを追加して、「ソース エディタ」に埋め込みます。
<script type="text/javascript" language="javascript" 
src="http://server/sites/site/Pages/ecl.js"></script>


<script type="text/javascript" language="javascript">
<!--
function Custom_AddListMenuItems (m, ctx)
{
var strDisplayText = "リンクメール送信";
var strImagePath = ctx.imagesPath+"gmailnew.gif";


var strUrl = SzServer (ctx.HttpRoot) + ctx.displayFormUrl +
"?ID=" + currentItemID;
var strSubject = EscapeSJIS (itemTable.firstChild.firstChild.
firstChild.firstChild.innerText);


var strAction = "javascript:window.location='mailto:?subject="+
strSubject+"&body="+strUrl+"';";


// メニューアイテムの追加
CAMOpt (m, strDisplayText, strAction, strImagePath);
// メニュー区切りの追加
CAMSep (m);


return false;
}


-->
</script>

なお、件名の文字化け対策には ShiftJIS の URL エンコードが必要ということで、Yoshio さん作成の Escape Codec Library を利用させて貰いました。
ecl.js をページライブラリにアップロードして参照する形にしています。
上のスクリプトの http://server/sites/site/ 部分を環境に合わせて書き替えて下さい。

・Escape Codec Library: ecl.js
<http://nurucom-archives.hp.infoseek.co.jp/digital/escape-codec-library.html>
・〜ヌルコムアーカイブス〜 デジタル制作室
<http://nurucom-archives.hp.infoseek.co.jp/digital/>

これで、「リンクメール送信」を選択すると、以下のようにメールフォームが開きます。
なお、残念ながら、IE 6.0 か 7.0 と Outlook 2003 か 2007 の組み合わせでしか確認していません。

SendLinkMail2.png

但し、件名の処理が手抜きなので、ビューの左端に無いと正しく動きません・・・

banner-tbp-sharepoint.gif
posted by kunitaka at 10:13| Comment(0) | TrackBack(0) | テクニック
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/4225571
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック