デスクトップやマイドキュメントは、ログインしたユーザによってパスが変わります。

プログラムでも同様に、デスクトップにファイルを出力した場合に、それだと実装できない!

というこで、マイクロソフトはちゃんと用意してくれてます。

--- code -----------

string desktopPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Desktop);

---------------------

これでOKです。

あと、この文字列を煮るなり、焼くなり好きにすればいいということだ。

ちなみに、他の特殊なフォルダ(マイドキュメント等)を取得したかったら

System.Environment.SpecialFolde列挙体を変更すればOK

以下、他のサイトを確認!

http://msdn2.microsoft.com/ja-jp/library/system.environment.specialfolder.aspx


次のjavascriptを実行するとIEとFirefoxで動作が違うという事がわかりました。


-- code -------------

<html><head>

<script language="javascript">

function testFunction(){

var el;

el = document.getElementById("test");

el.value="test alert";

alert(el.value);

}

</script>

</head><body>

<input type="hidden" name="test" value="" />

<input type="button" name="testButton" value="test" onclick="testFunction()" />

</body>

</html>

--------------------


まず、動作が違う理由から説明すると、getElementByIdというメソッドの仕様にあるようです。


このメソッドは要素のID属性からタグを返すメソッドですが、呼び出そうとしている、inputタグにID属性を明記していません。


なのに!!IEだと問題なく動作をしてしまうのです!!!


Firefoxだと、null値が返され.valueがelには無いというエラーが発生します。


私自身、ID属性を指定するの忘れ、IEで動くのにFirefoxで動かないという現象に陥り、どっぷりハマりました。


次回IE8はWEB標準に近づくということですが、Javascript自体はどうなんでしょうかね?


そもそも、デフォルトは標準レンダリングの機能がオフになっているという噂も。。。


WEBアプリケーションはホントに厄介だ。しょぼん



javascriptは値が未定義の変数に対し「undefined」が設定されます。


未定義なので、xxx.valueとやってもエラーがでるだけです。


ということで、undefinedの場合は処理をしないようにする等の処置が必要かと思われます。


そのやり方は↓


-- code ---------------------

<script language="javascript">
var test;
if (test == undefined){
alert('test is undefined');
}
else {
alert('test is not undefined');
}
</script>

-----------------------------

こっちは宣言しただけで、何も値が設定されていないtestを評価しているので、メッセージボックスで

[test is undefined]

と表示されます。


-- code -------------------------

<script language="javascript">
var test;
var test = "test";
if (test == undefined){
alert('test is undefined');
}
else {
alert('test is not undefined');
}
</script>

---------------------------------

こっちはtestに文字列"test"を設定しているので

[test is not undefined]

と表示されます。