公告資訊

未經授權,禁止轉載網站文章與內容。如有需要可以跟我聯絡,謝謝!!




2008年7月13日 星期日

<asp:Label runat="Server">在Firefox中的存取

<asp:Label runat="server">伺服器控制項render到前端瀏覽器時,會自動轉換成<span>。在IE當中,<span>物件有提供innerHTML的屬性,因此在IE或是Firefox當中,你可以直接使用下面的程式設定<asp:Label runat="server">伺服器控制項在瀏覽器中的內容:

<script type="text/javascript">

  document.getElementById("Label1").innerHTML = 'Hello!';

</script>

但若是換成innerText的話,下面的程式在Firefox中就會有問題:

<script type="text/javascript">

  document.getElementById("Label1").innerTexr = 'Hello!';

</script>

因為Firefox和IE支援的DOM不太一樣,所以在Firefox的程式當中,<span>不支援innerText的屬性。若是你想要直接將資料加入<span>控制項當中的話,就必須要使用下面的語法:

mylabel = document.getElementById("Label1");

mylabel.firstChild.data = 'Hello!';

若是原始的<asp:Label runat="server">伺服器控制項沒有設定Text屬性值的話,則render出來的<span>會是一個空元素,則上面的程式執行會有問題。為了避免這種情況,所以完整的程式就要寫成下面的樣子:

<script type="text/javascript">

mylabel = document.getElementById("Label1");

if ( mylabel.firstChild == null )
{
        node = document.createTextNode( '' );
        mylabel.appendChild( node );
}

mylabel.firstChild.data = 'Hello!';

 

</script>

沒有留言:

最新回應

Loading...

即時與版主對話


(若狀態顯示"忙碌"時,我可能無法馬上回應。你可以留下Email,我會盡快跟你聯絡,謝謝喔!!)