JavaScript 無効チェック:初心者でも分かる5つの方法とサンプルコード
JavaScriptが無効になっているかどうかを検出する方法
document.write()を使用する
これは、最も単純な方法の一つです。document.write()
を使用して、JavaScriptが有効かどうかを確認するメッセージをページに出力します。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
document.write("JavaScriptは有効です。");
</script>
<noscript>
JavaScriptが無効です。
</noscript>
</body>
</html>
このコードの場合、JavaScriptが有効であれば、ページに「JavaScriptは有効です。」というメッセージが表示されます。JavaScriptが無効であれば、何も表示されません。
window.onload
イベントを使用して、JavaScriptが有効かどうかを確認することもできます。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
window.onload = function() {
if (document.getElementById("js-enabled")) {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
}
};
</script>
<p id="js-enabled"></p>
</body>
</html>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
if (typeof window.addEventListener === "function") {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
} else {
document.getElementById("js-enabled").innerHTML = "JavaScriptが無効です。";
}
</script>
<p id="js-enabled"></p>
</body>
</html>
navigator.javaEnabled()
プロパティを使用して、Javaが有効かどうかを確認することもできます。ただし、これはJavaScriptが有効かどうかを直接確認するものではありません。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
if (navigator.javaEnabled()) {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
} else {
document.getElementById("js-enabled").innerHTML = "JavaScriptが無効です。";
}
</script>
<p id="js-enabled"></p>
</body>
</html>
サーバーサイドでチェックする
JavaScriptが有効かどうかをサーバーサイドでチェックすることもできます。これは、ユーザーがJavaScriptを無効にしていても、ページにコンテンツを表示したい場合に役立ちます。
<?php
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(no|disabled)\s*javascript/i', $_SERVER['HTTP_USER_AGENT'])) {
echo "JavaScriptが無効です。";
} else {
echo "JavaScriptは有効です。";
}
?>
このコードの場合、ユーザーエージェント文字列に「no javascript」または「disabled javascript」が含まれている場合は、ページに「JavaScriptが無効です。」というメッセージが表示されます。
どの方法を使うべきかは、状況によって異なります。最も簡単な方法は、document.write()
を使用する方法です。ただし、この方法は、JavaScriptが完全に無効になっている
JavaScript 無効チェックサンプルコード
document.write()を使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
document.write("JavaScriptは有効です。");
</script>
<noscript>
<p>JavaScriptが無効です。</p>
</noscript>
</body>
</html>
window.onloadイベントを使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
window.onload = function() {
if (document.getElementById("js-enabled")) {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
}
};
</script>
<p id="js-enabled"></p>
</body>
</html>
JavaScriptの機能を使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
if (typeof window.addEventListener === "function") {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
} else {
document.getElementById("js-enabled").innerHTML = "JavaScriptが無効です。";
}
</script>
<p id="js-enabled"></p>
</body>
</html>
navigator.javaEnabled()を使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
if (navigator.javaEnabled()) {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
} else {
document.getElementById("js-enabled").innerHTML = "JavaScriptが無効です。";
}
</script>
<p id="js-enabled"></p>
</body>
</html>
サーバーサイドでチェックする
<?php
if (isset($_SERVER['HTTP_USER_AGENT']) && preg_match('/(no|disabled)\s*javascript/i', $_SERVER['HTTP_USER_AGENT'])) {
echo "JavaScriptが無効です。";
} else {
echo "JavaScriptは有効です。";
}
?>
JavaScript 無効チェックのその他の方法
document.querySelector()を使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
if (document.querySelector("noscript")) {
document.getElementById("js-disabled").innerHTML = "JavaScriptが無効です。";
} else {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
}
</script>
<p id="js-enabled"></p>
<noscript>
<p id="js-disabled"></p>
</noscript>
</body>
</html>
このコードの場合、noscript
要素が存在するかどうかを確認します。存在する場合は、JavaScriptが無効であると判断し、「JavaScriptが無効です。」というメッセージが表示されます。
addEventListenerイベントを使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
window.addEventListener("DOMContentLoaded", function() {
if (document.getElementById("js-enabled")) {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
}
});
</script>
<p id="js-enabled"></p>
</body>
</html>
このコードの場合、DOMContentLoaded
イベントを使用して、ページの読み込みが完了したことを確認します。読み込みが完了したら、js-enabled
要素が存在するかどうかを確認します。存在する場合は、JavaScriptが有効であると判断し、「JavaScriptは有効です。」というメッセージが表示されます。
画像の読み込みエラーを使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
var img = new Image();
img.onload = function() {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
};
img.onerror = function() {
document.getElementById("js-disabled").innerHTML = "JavaScriptが無効です。";
};
img.src = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";
</script>
<p id="js-enabled"></p>
<p id="js-disabled"></p>
</body>
</html>
try...catchを使用する
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>JavaScript 無効チェック</title>
</head>
<body>
<script>
try {
document.getElementById("js-enabled").innerHTML = "JavaScriptは有効です。";
} catch (e) {
document.getElementById("js-disabled").innerHTML = "JavaScriptが無効です。";
}
</script>
<p id="js-enabled"></p>
<p id="js-disabled"></p>
</body>
</html>
JavaScriptが無効かどうかを確認するには、さまざまな方法があります。どの方法を使うべきかは、状況によって異なります。
javascript html css