もっと簡単に出来るかなと思っていましたが、意外と手間取ってしまいました。
使えそうだった 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 の組み合わせでしか確認していません。
但し、件名の処理が手抜きなので、ビューの左端に無いと正しく動きません・・・
tags: SharePoint, SharePoint 2007, MOSS, MOSS 2007, SharePoint Server, SharePoint Server 2007, WSS, Windows SharePoint Services, WSS 3.0, WSS V3, Office system, 2007 Office system