CCC*_*CCC 0 javascript css browser firefox google-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);
Run Code Online (Sandbox Code Playgroud)
代码在Chrome中运行良好但在FireFox中按钮显示非常小并且不起作用,并且在IE中代码根本不起作用.
问题出在这里:
button.innerText = 'Change Item';
Run Code Online (Sandbox Code Playgroud)
innerText不是有效的DOM属性.某些浏览器可能支持它,但它是非标准的,不应该使用.
您可以替换innerText为:
textContent (这是符合标准的直接标准),或者
innerHTML (这有点不同,但在您的示例中将是相同的,并且与旧版浏览器兼容)