サーバーサイドの処理はともかくとして、Officeドキュメントにアクセスする部分はJavaScriptで書くことになるので、基本的にはOffice用アプリのソースコードは丸見えです。
(あくまでもHTML + JavaScript構成のアプリの場合)
そのため、ユーザーにソースコードを見られたくない場合には「Microsoft Ajax Minifier」等のソースコード軽量化ツールで難読化しておくことをお薦めします(Microsoft Ajax Minifierの使い方は「Microsoft Ajax MinifierでJavaScriptを縮小化しよう」参照)。
下記は上が軽量化前のソースコード、下が軽量化後のソースコードになりますが、その差は一目瞭然です。
Office.initialize = function(reason){}
$(function(){
$("#datepicker").datepicker({
beforeShowDay: function(date) {
var result;
var dd = date.getFullYear() + "/" + (date.getMonth() + 1) + "/" + date.getDate();
var hName = ktHolidayName(dd);
if(hName != "") {
result = [true, "date-holiday", hName];
} else {
switch (date.getDay()) {
case 0:
result = [true, "date-holiday"];
break;
case 6:
result = [true, "date-saturday"];
break;
default:
result = [true];
break;
}
}
return result;
},
onSelect: function(dateText, inst) {
Office.context.document.setSelectedDataAsync(dateText);
}
});
});
Office.initialize=function(){},$(function(){$("#datepicker").datepicker({beforeShowDay:function(n){var t,r=n.getFullYear()+"/"+(n.getMonth()+1)+"/"+n.getDate(),i=ktHolidayName(r);if(i!="")t=[!0,"date-holiday",i];else switch(n.getDay()){case 0:t=[!0,"date-holiday"];break;case 6:t=[!0,"date-saturday"];break;default:t=[!0]}return t},onSelect:function(n){Office.context.document.setSelectedDataAsync(n)}})})
もっとも、軽量化してコードを読みづらくしたところでコードが丸見えなのは変わりないし、難読化したことで動作しなくなる場合も有るので必ずしも難読化することが良いとは限らないのですが、そのままコードを公開するよりは多少はマシになるのではないかと思います。気休め程度にはなります。
















この記事へのコメントはありません。