IE8に対応するJavaScriptの書き方


お世話になります。以前、以下のページで質問をさせていただき、
http://q.hatena.ne.jp/1502442214

やりたいことは実現できたのですが、急遽これをIE8に対応させる必要が出てまいりました。
おそらくJavaScriptの書き方を変える必要があるのだと思っているのですが、どのように変えたら良いかをご教示いただけませんでしょうか。

回答の条件
  • 1人50回まで
  • 登録:2017/12/15 06:44:00
  • 終了:2017/12/15 09:46:19

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4725ベストアンサー獲得回数20252017/12/15 09:15:09

ポイント500pt

IE8 の環境を持ってないので、IE11 のエミュレーションでしか確認していませんが、こんな感じで行けると思います。

1ページ目

変更なし。

2ページ目

<form name="F21" action="3.html" method="get">
<input type="hidden" name="v1" value="">
<input type="hidden" name="v2" value="">
<input type="submit" value="送信" onClick="document.F21.v2.value='2-1';">
</form>

<form name="F22" action="3.html" method="get">
<input type="hidden" name="v1" value="">
<input type="hidden" name="v2" value="">
<input type="submit" value="送信" onClick="document.F22.v2.value='2-2';">
</form>

<script>
function handler() {
    var p = window.location.search.substring(1).split("&");
    for (var i = 0 ; i < p.length ; ++i) {
        var kv = p[i].split("=");
        if (kv.length == 2) {
            var f = document.getElementsByTagName("form");
            for (var j = 0 ; j < f.length ; ++j) {
                if (f[j][kv[0]]) {
                    f[j][kv[0]].value = kv[1];
                }
            }
        }
    }
}
if (window.addEventListener) {
    window.addEventListener("DOMContentLoaded", handler);
} else {
    window.attachEvent("onload", handler);
}
</script>

3ページ目

<script>
var item_map = {
    "1-1": "サンプル1",
    "1-2": "サンプル2",
    "2-1": "サンプル3",
    "2-2": "サンプル4",
    "3-1": "サンプル5",
    "3-2": "サンプル6",
};
function add_item(id) {
    var e = document.getElementById("item");
    var item = document.createElement("div");
    item.innerHTML = item_map[id];
    e.appendChild(item);
}
function handler() {
    var p = window.location.search.substring(1).split("&");
    for (var i = 0 ; i < p.length ; ++i) {
        var kv = p[i].split("=");
        if (kv.length == 2) {
            add_item(kv[1]);
        }
    };
    var sel = document.getElementById("select");
    var a = sel.getElementsByTagName("a");
    for (var i = 0 ; i < a.length ; ++i) {
        a[i].onclick = function(ev) {
            if (ev && ev.target) {
                add_item(ev.target.dataset["item"]);
            } else {
                add_item(event.srcElement["data-item"]);
            }
        };
    }
}
if (window.addEventListener) {
    window.addEventListener("DOMContentLoaded", handler);
} else {
    window.attachEvent("onload", handler);
}
</script>

<p>あなたはCですか?</p>
<ul id="select">
<li><a href="#last" data-item="3-1">はい</a></li>
<li><a href="#last" data-item="3-2">いいえ</a></li>
</ul>
<div id="last">
    あなたに必要なのは、
    <div id="item">
    </div>
</div>
id:cafe-beret

早々にありがとうございます!
またまた完璧に動きました!!本当にありがとうございます!

2017/12/15 09:45:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません