我試圖運行這個JS函數時,用戶點擊一個面板(在TableCell)。此面板是內容頁面中的一個元素,與具有內容佔位符的主頁面一起使用。當我嘗試點擊面板上,下面的錯誤被拋出:關於document.getElementByID的Javascript錯誤「對象不支持此屬性或方法」?
微軟JScript運行時錯誤:對象不支持此屬性或方法
這裏是母版頁相關的代碼ASPX:
<link rel="Stylesheet" href="../includes/styles.css" />
<script type="text/javascript" language="javascript">
function swapDirections(control) {
var main = document.getElementByID('ct100_TableContent_' + control);
var long = document.getElementById('ct100_TableContent_' + control + '_long');
var short = document.getElementById('ct100_TableContent_' + control + '_short');
var mainhtml = main.innerHTML;
var longhtml = long.innerHTML;
var shorthtml = short.innerHTML;
if (mainhtml.length == shorthtml.length)
main.innerHTML = longhtml;
else
main.innerHTML = shorthtml;
}
</script>
下面是內容頁面的相關代碼:
Panel rigDirections = new Panel();
rigDirections.CssClass = "clip";
rigDirections.ID = u.Id.ToString() + "_RD";
string MainDivRD = rigDirections.ClientID;
Literal rigDir = new Literal();
string sshort = "";
if (u.RigDirections.ToLower().Length > (textCutOFF + 4))
{
sshort = Server.HtmlEncode(u.RigDirections.ToLower().Substring(0, textCutOFF).Trim()) + " ...";
rigDir.Text = "<a class=RD_RA title=\"Click to Expand\" href=\"javascript: swapDirections('" + MainDivRD + "')\">" + sshort + "</a>"; ;
}
else
{
sshort = Server.HtmlEncode(u.RigDirections.ToLower().Trim());
rigDir.Text = sshort ;
}
string slong = Server.HtmlEncode(u.RigDirections.ToLower().Trim());
rigDirections.Controls.Add(rigDir);
cell.Controls.Add(rigDirections);
和內容頁ASPX:
<asp:Content ID="Content1" ContentPlaceHolderID="TableContent" Runat="Server">
<asp:Panel ID="pnlTable" Width="950" runat="server">
</asp:Panel>
</asp:Content>
錯誤在函數的第一行被拋出。
我已經用盡了我的互聯網搜索技巧,而且我從未使用過JS,所以如果有人有任何想法,我將非常感激他們。
謝謝!
badPanda
什麼類型的元素是'var main = document.getElementByID('ct100_TableContent_'+ control);'? –
哇,這是令人尷尬的!多謝你們。 – badpanda