簡體   English   中英

document.getElementById在Mozilla中不起作用

[英]document.getElementById not working in Mozilla

我在Mozilla中遇到document.getElementByID的問題。 在IE和Chrome中,我的代碼運行良好。

我寫了以下代碼:

<script type="text/javascript">
function test(x, y) {
var text1 = document.getElementById('text1');
 for (var i = 0; i < x.length; i++) {
    text1.innerText += x[i]; // prints 12345
  }
   text1.innerText += "\ny: " + y; // prints y: 1,2,3,4,5
  }
</script>


 <body>
<form id="form1" runat="server">
<div>
    <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />
</div>
<div id="text1"></div>
</form>
</body>

誰能說出為什么在FireFox中不起作用?

我不認為這是對getElementById的調用(如果確實如此),那么您沒有提供足夠的詳細信息–但我可以告訴您Firefox和其他一些瀏覽器未實現innerText 對於這些瀏覽器,您需要直接使用textContent或文本節點。

您可以使用功能檢測來確定是否支持textContent

var textContentOrInnerText = "textContent" in document.body 
                               ? "textContent" : "innerText";

然后,將此變量用於代碼中的屬性訪問:

text1[textContentOrInnerText] += x[i];

隨意將變量縮短到您更喜歡的方式。 請注意,這兩個屬性之間在行為上有一些細微的差異,但是大多數情況下您不會注意到它們。

textContent是標准行為,這就是為什么我在代碼中首先對此進行測試的原因。

innerText在DOM標准中的任何地方都沒有引用,因此它是非標准的,並且是僅IE的一種方法。

請使用.textContent獲取文本內容。

對於瀏覽器支持,請使用庫或填充程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM