ASP.NET Webフォーム(v3.5)をマスターページを使用するように変換した後、奇妙なJavascriptエラーが発生し始めました。
コンテンツページにはjavascriptのブロックがあります。ここにあります:
<script type="text/javascript">
var attCount = 0;
function CreateAttachmentControl() {
var newAtt = document.createElement("span");
var newAttName = "area" + attCount;
newAtt.setAttribute("id", newAttName);
newAtt.setAttribute("name", newAttName);
var newInput = document.createElement("input");
var newInputName = "att" + attCount;
newInput.setAttribute("type", "file");
newInput.setAttribute("id", newInputName);
newInput.setAttribute("name", newInputName);
if (newInput.addEventListener) {
newInput.addEventListener("onchange", CreateAttachmentControl, false);
} else if (newInput.attachEvent) {
newInput.attachEvent("onchange", CreateAttachmentControl);
} else {
newInput.onchange = CreateAttachmentControl;
}
var newRemove = document.createElement("a");
newRemove.setAttribute("href", "javascript:RemoveAttachmentControl("" + attCount + "")");
newRemove.setAttribute("title", "Remove this attachment");
newRemove.innerHTML = "X";
newAtt.appendChild(newInput);
newAtt.appendChild(document.createTextNode(" "));
newAtt.appendChild(newRemove);
newAtt.appendChild(document.createElement("br"));
attArea.appendChild(newAtt); // error here
attCount++;
}
function RemoveAttachmentControl(n) {
// get input element
var input = document.getElementById("att" + n);
// if the input is blank dont delete
if (input.value != "" && input.value != null) {
var att = document.getElementById("area" + n);
attArea.removeChild(att);
}
}
</script>
エラーは次のとおりです。「attArea」は未定義です
しかし、JavaScriptの私のブロックのすぐ下にこれがあるので、そうではないことを私は知っています:
...<td align="left" colspan="2" style="height: 13px" id="attArea" name="attArea"></td>...
これは、Webフォームをマスターページのあるコンテンツページに変換する前は完全に機能していました。既知のJavascript +マスターページの問題はありますか?
ありがとう
回答:
回答№1の場合は3提供したコードサンプルでは、attArea は 未定義。あなたが呼んでいるそれへの最初の参照 attArea.appendChild()
。あなたが提供しなかったソースのどこかで宣言されていますか?
回答№2の場合は0
私はあなたが行方不明だと思います:
var attArea = document.getElementById("attArea");
attArea.appendChild(newAtt); // no more error!