將ASP.NET webform(v3.5)轉換爲使用母版頁後,我開始出現一個奇怪的Javascript錯誤。ASP.NET MasterPage + 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>...
在將網頁表單轉換爲具有主頁面的內容頁面之前,這完全可以工作。是否有一些已知的Javascript + Masterpage問題?
感謝
好吧,我搬到了調用該方法CreateAttachmentControl到頁面的最底部。在切換到masterpages之前,我正在做的事情是在body onload事件上調用該方法,這在MP內容頁面中沒有。感謝您幫助我的困惑! – 2009-02-20 21:30:24