JavaScript 初級者です。
IE7対応の、jQueryを使わないJavaScriptが必要になり、下記の3つを作っているところです。
- ページトップへ戻る(非スムーススクロール)
- 前のページへ戻る
- 印刷ボタン
コードはこちらです。
var ua = navigator.userAgent.toLowerCase(), // ブラウザverを取得して小文字化 ie7 = ua.indexOf("msie 7"), // 文字列検索 ie8 = ua.indexOf("msie 8"), pageTop = document.getElementById("pagetop"), // ページトップ pageBack = document.getElementById("btn-back"), // 前のページへ paper = document.getElementById("btn-print") // 印刷 ; // IE7, IE8とそれ以外の切り替え if (ie7 != -1 || ie8 != -1) { pageTop.attachEvent("onclick", function() { window.scrollTo(0, 0); event.cancelBubble = true; }) pageBack.attachEvent("onclick", function() { history.back(); event.cancelBubble = true; }) paper.attachEvent("onclick", function() { window.print(); event.cancelBubble = true; }) } else { pageTop.addEventListener("click", function(e) { window.scrollTo(0, 0); e.stopPropagation(); }) pageBack.addEventListener("click", function(e) { history.back(); e.stopPropagation(); }) paper.addEventListener("click", function(e) { window.print(); e.stopPropagation(); }) };
この場合、「印刷する」ボタンがないページを開くと、
Cannot read property 'addEventListener' of null
とエラーになります。
「未定義のイベントリスナーは使えないよ」という意味なのかと思いますが、どうすれば良いかわかりません。
ページに該当するボタン(ID)がなくても、エラーが出ないようにしたいのですが、お分かりの方はいらっしゃいませんか。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2015/07/27 14:56
2019/12/11 02:14