Ajaxの学習経過報告 3
●遭遇したエラー達
エラー:オブジェクトを指定してください
→parse error
呼び出す関数名の打ち間違い
→定義されていない関数を呼び出そうとしたと解釈される
エラー:オブジェクトでサポートされていないプロパティまたはメソッドです。
→parse error
getElementByID("aForm")
→getElementById("aForm")
オブジェクト名に . を付けて呼び出したメソッド名のうち間違い
→定義されていないメソッドを呼び出そうとしたと解釈される
●新しい知識
<IDを指定した呼び出し>
document.getElementByID("myPhoto").src = *.jpg
<(HTML)タグを指定した呼び出し>
document.getElementByTagName("img")[0].src = *.jpg
<新しい用語>
クロスサイトスクリプティング(XSS)
ソフトウェアのセキュリティホールの一つで、Webサイトの訪問者の入力をそのまま画面に表示する掲示板などのプログラムが、悪意のあるコードを訪問者のブラウザに送ってしまう脆弱性のこと。
[参考URL]
http://e-words.jp/w/E382AFE383ADE382B9E382B5E382A4E38388E382B9E382AFE383AAE38397E38386E382A3E383B3E382B0.html
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html
http://lovemorgue.org/xss.html
●JavaScriptのクセ
// innerTextはFireFoxでは動作しない。
// FireFoxではtextContentを使うことになるが、こちらはIEなどでは動作しない。
function outTEXT()
{
$("subContent").setText("<b>HTMLタグ</b>は反映されません");
}
// $関数の定義
function $(tagID)
{
// DOMオブジェクトの代入
var tagObj = document.getElementById(tagID);
// そのオブジェクトの振る舞いの定義
tagObj.setText = function (srcText)
{
if(navigator.userAgent.indexOf("Firefox") > -1)
{
tagObj.textContent = srcText;
}
else
{
tagObj.innerText = srcText;
}
}
return tagObj;
}
ある関数の定義の中に、別の定義が紛れ込んでいて気持ち悪い。