簡體   English   中英

為什么此代碼在FireFox和IE中不能使用,而在Chrome中不能使用?

[英]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.

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