私はChromeで作成したこのJSFiddleでは、IEで動作できないことがわかりました(私はIE9を使用しています)。この理由:http://jsfiddle.net/ZSB67/。IEとJSFiddleでelem.datasetを使用すると問題が発生する
var backImage = [
"http://alm7.wikispaces.com/file/view/RedBackground.bmp/144018347/RedBackground.bmp",
"http://www.time2man-up.com/wp-content/uploads/2011/07/black-background.jpg",
"http://1.bp.blogspot.com/--GorNQoEUxg/TfWPyckVeMI/AAAAAAAAAHk/0208KqQf3ds/s1600/yellow_background.jpg",
""
];
function changeBGImage(whichImage) {
if (document.body) {
document.body.style.background = "url(\"" + backImage[whichImage] + "\")";
}
}
var buttons = document.querySelectorAll('.bg_swap'),
button;
for (var i = 0; i < buttons.length; i++) {
button = buttons[i];
button.onclick = function() {
changeBGImage(this.dataset.index);
};
}
私はハイパーリンクが4つあり、クラスは.bg_swap、数字のインデックス(データインデックス)は昇順になっています。それらをクリックすると、要素のインデックスに対応するページの背景を配列のインデックス(backImage)に設定することになっています。私はChromeでIE9でチェックしても動作しません。 – 0x499602D2
'this.dataset'はIE9では定義されていないと表示されるので、あなたのonclickハンドラはchangeBGImage()を呼び出しません。 –