[英]Why Doesn't This Code Work in FireFox and IE but does in Chrome?
我目前正在使用此代碼:
可以在這里看到代碼-http://jsbin.com/ESOdELU/1/edit
var wordRandomizer = {
run: function (targetElem) {
var markup = this.createMarkup();
targetElem.appendChild(markup);
},
createMarkup: function () {
var that = this;
var frag = document.createDocumentFragment();
this.elem = document.createElement('span');
var button = document.createElement('button');
button.innerText = 'Change Item';
button.addEventListener('click', function () {
that.changeItem();
});
frag.appendChild(this.elem);
frag.appendChild(button);
return frag;
},
changeItem: function () {
var rand = this.getRandInt(1, this.items.length) - 1;
console.log(rand);
this.elem.innerText = this.items[rand];
},
getRandInt: function (min, max) {
return Math.floor(Math.random() * (max - min + 1)) + min;
},
items: ['itemA', 'itemB', 'itemC', 'itemD']
};
wordRandomizer.run(document.body);
該代碼在Chrome中工作正常,但在FireFox中,按鈕顯示的很小,無法正常工作;在IE中,該代碼根本無法正常工作。
問題在這里:
button.innerText = 'Change Item';
innerText
不是有效的DOM屬性。 某些瀏覽器可能支持它,但是它是非標准的,因此不應使用。
您可以將innerText
替換為:
textContent
(這是直接符合標准的等效項), 或搭配
innerHTML
(有點不同,但是在您的示例中將是相同的,並且與舊版瀏覽器兼容)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.