現役システムエンジニアの備忘録

技術スキルや用語などの記録を残していきます

基礎

【JavaScript入門】HTML要素内に直接スクリプトを書く方法|初心者向けにjavascript: の使い方をわかりやすく解説

投稿日:2019年4月4日 更新日:

この記事で分かること

  • javascript: とは何か(URLスキームの意味)
  • HTML要素内に直接JavaScriptを書く方法
  • javascript: を使ったリンクの基本的な書き方
  • アドレスバーに javascript: を入力したときの動き
  • javascript: のメリット・デメリット
  • セキュリティ上の注意点(なぜ今は非推奨なのか)
  • 良い例/悪い例で理解する使いどころ

javascript:」は、リンクやアドレスバーから直接JavaScriptコードを実行するための特別な書き方(スキーム)です。
昔はブックマークレットなどでよく使われていましたが、現在はセキュリティや可読性の観点から、使いどころがかなり限定されています。この記事では、javascript: の仕組み・使い方・注意点を、良い例/悪い例とともにやさしく解説します。

JavaScriptを学んでいると、

  • href="javascript:..." って何?
  • アドレスバーに javascript:alert('こんにちは') と打つとどうなるの?
  • 今でも javascript: を使っていいの?

といった疑問を持つことがあります。
この記事では、javascript: の正体」「今の時代にどう向き合うべきか」 を、図解とコード例を使って分かりやすく解説します。



javascript: とは何か?(スキームとしての意味)

javascript: は、URLの一種です。
http:https: と同じように、「スキーム」 と呼ばれます。


http://example.com
https://example.com
javascript:alert('こんにちは');

javascript: の後ろに書かれたコードが、そのまま JavaScript として実行されるのが特徴です。

  • リンクの href に書く
  • ブラウザのアドレスバーに直接入力する
  • ブックマーク(ブックマークレット)として保存する

リンクで使う javascript: の基本

もっともシンプルな例は、リンクをクリックしたときに JavaScript を実行するパターンです。


<a href="javascript:alert('こんにちは');">あいさつする</a>

このリンクをクリックすると、alert('こんにちは'); が実行されます。

ポイント:
javascript: の後ろには、そのまま JavaScript コードを書くイメージです。

アドレスバーに javascript: を直接入力した場合

ブラウザのアドレスバーに、次のように入力することもできます。


javascript:alert('こんにちは');

この場合も、現在表示しているページ上で JavaScript が実行されます。
ただし、最近のブラウザではセキュリティの観点から、アドレスバーでの javascript: 実行が制限されている場合があります。

注意:
見知らぬサイトで「このコードをアドレスバーに貼り付けて実行して」と書かれていたら、絶対に実行しないようにしましょう。

javascript: の仕組みを図で理解する

javascript: の動きを、図で整理すると次のようになります。

  • リンクの hrefjavascript:... と書く
  • クリックすると、ブラウザが javascript: 以降を JavaScript として解釈
  • JavaScriptエンジンがコードを実行
  • 結果として、アラート表示やページ操作が行われる

javascript: を使うメリット・デメリット

メリット

  • リンク1つで簡単に JavaScript を実行できる
  • ブックマークレットとして便利だった(過去形)
  • 小さなデモや学習用途には分かりやすい

デメリット

  • HTMLとJavaScriptが混ざって読みづらい
  • コードが長くなると管理が大変
  • セキュリティ上のリスクがある
  • 最近のブラウザでは制限されることがある
結論:
実務では、javascript: を積極的に使うことはほとんどありません。
代わりに、addEventListener などでイベントを設定するのが一般的です。



良い例・悪い例で理解する javascript:

悪い例:href に直接長いコードを書く


<a href="javascript:const name = prompt('名前は?'); if (name) { alert(name + 'さん、こんにちは'); }">
  あいさつする
</a>

このように、長い処理をすべて href に書いてしまうと、可読性が非常に悪くなります。

良い例:関数を呼び出すだけにする(ただし今は非推奨寄り)


<script>
  function greet() {
    alert('こんにちは');
  }
</script>

<a href="javascript:greet();">あいさつする</a>

処理を関数に分けることで、href の中身は短くなります。
しかし、今の実務では、これよりも「イベントリスナーで処理を書く」方法が主流です。

さらに良い例:イベントリスナーで書く(現代的な書き方)


<a href="#" id="greet-link">あいさつする</a>

<script>
  const link = document.getElementById('greet-link');
  link.addEventListener('click', function(event) {
    event.preventDefault();
    alert('こんにちは');
  });
</script>

この書き方なら、

  • HTMLは「何があるか」だけを書く
  • JavaScriptは「どう動くか」を別で管理できる

という、記事(外部ファイル(.js)の読み込み方法)とも一貫した設計になります。

javascript: を使うときの注意点(セキュリティ)

javascript: は、「URLとしてコードを実行できてしまう」という性質上、セキュリティリスクがあります。

  • 悪意あるサイトが危険な javascript: コードを実行させようとする
  • ユーザーがよく分からないままコピー&ペーストして実行してしまう
重要:
見知らぬサイトに書かれている javascript: コードを、
そのままアドレスバーやブックマークに貼り付けて実行するのは非常に危険です。

JavaScript 初心者におすすめの学習書籍

javascript: の仕組みを理解すると、次は「現代的な書き方」を身につける段階に進むのが自然です。
実務では javascript: を使わず、イベントリスナー・DOM操作・外部ファイルで処理を分離するのが基本です。

以下の書籍は、まさにこの「現代的な書き方」を体系的に学べる内容になっており、
javascript: を理解した初心者が次に進む教材として最適です。

いちばんやさしい JavaScript の教本

HTML要素に直接書く古い書き方から卒業し、DOM操作・イベント処理を中心に学べる入門書です。
javascript: のような「昔の書き方」と、現代的な書き方の違いが自然に理解できます。

この本で解決できること:

  • イベントリスナーを使った現代的な書き方が身につく
  • HTMLとJavaScriptを分離するメリットが理解できる
  • 「まず動くものを作る」経験が得られる

確かな力が身につくJavaScript「超」入門

javascript: のような古い書き方を理解したうえで、
文法 → DOM → イベント → 非同期処理と段階的に学べる体系的な入門書です。
実務で使う書き方をしっかり身につけたい人に向いています。

この本で解決できること:

  • 現代的なJavaScriptの基礎を体系的に学べる
  • 初心者がつまずきやすいポイントを丁寧に理解できる
  • 実務レベルのコードに近い書き方が身につく

JavaScriptを動画で学びたい方へ(javascript: の次のステップに最適)

javascript: は「HTMLに直接書く昔の書き方」ですが、実務では
イベントリスナー・DOM操作・外部ファイル化 が基本です。
動画講座なら、これらの現代的な書き方を実際の画面の動きを見ながら理解できるため、
初心者でもつまずきにくくなります。

超JavaScript 完全ガイド 2026

JavaScriptの基礎から応用までを体系的に学べる講座です。
javascript: のような古い書き方から、DOM操作 → イベント処理 → 非同期処理 へと
現代的な書き方にステップアップしたい方に最適です。

この講座で解決できること:

  • JavaScriptの基礎〜応用を体系的に理解できる
  • HTMLとJavaScriptの連携を画面で確認しながら学べる
  • イベントリスナーや外部ファイル化など、実務的な書き方が身につく

超JavaScript 完全ガイド 2026(Udemy)

JavaScriptをとことんやってみよう

「まずは動かして理解したい」という方に向いている講座です。
javascript: のような直接記述ではなく、イベント処理やDOM操作を中心に学べるため、
本記事で学んだ内容をすぐに現代的な書き方で実践できます。

この講座で解決できること:

  • JavaScriptの動きを実際に試しながら理解できる
  • DOM操作・イベント処理の基礎が身につく
  • 短時間で「動くものを作る」経験が得られる

JavaScriptをとことんやってみよう(Udemy)

体系的に学びたい方へ(スクールという選択肢)

javascript: のような古い書き方を理解したあと、
実務で必要なのは DOM操作・イベント処理・非同期処理・モジュール化 といった現代的なスキルです。
しかし独学では、これらの理解が急に難しくなるタイミングがあります。

独学でつまずきやすいポイント

  • イベントリスナーの使い方が曖昧なまま進んでしまう
  • DOM操作の理解が浅く、コードが思い通りに動かない
  • 非同期処理(Promise / async)が難しく感じる
  • コードの書き方が「古い書き方」のまま止まってしまう

こういった悩みが出てきたら、質問できる環境
学習ロードマップを一緒に作ってくれる人がいるだけで、理解スピードが大きく変わります。

無料相談で得られるメリット

  • あなたの現在のレベルに合わせた学習ロードマップを作成
  • 古い書き方から現代的な書き方への移行ポイントを教えてくれる
  • DOM・イベント・非同期処理のつまずきやすい部分を解消
  • エンジニア転職を視野に入れたキャリア相談も可能

JavaScriptを効率よく学びたい方には、未経験からエンジニアを目指せる
DMM WEBCAMP の学習コースも選択肢のひとつです。

DMM WEBCAMP 学習コース(無料相談はこちら)



javascript: に関するよくある質問(FAQ)

Q1

javascript: は今でも使っていいの?

A

学習目的やローカル環境での簡単な確認には使えますが、実務の本番コードでは基本的に使いません。

Q2

ブックマークレットって何?

A

javascript: から始まるコードをブックマークとして保存し、クリックするだけで実行できる仕組みです。

Q3

なぜ hrefjavascript: を書くのは良くないの?

A

HTMLとJavaScriptが混ざって読みづらくなり、保守性も下がるためです。処理は外部ファイルやイベントリスナーに分離するのが現代的な書き方です。

Q4

アドレスバーに javascript: を打っても動かないのはなぜ?

A

最近のブラウザではセキュリティのために制限されている場合があります。



まとめ

  • javascript: はURLスキームの一種で、コードを直接実行するための書き方
  • リンク・アドレスバー・ブックマークレットで使われてきた
  • しかし、可読性・保守性・セキュリティの観点から実務では非推奨
  • 現代的な書き方ではイベントリスナーや外部ファイルで処理を分離するのが基本
  • javascript: を知っておくと古いコードの理解に役立つ



関連記事

【JavaScript入門】演算子まとめ|初心者向けに算術・比較・論理・代入・ビット演算子をわかりやすく解説

2019/04/13   -基礎

この記事で分かること JavaScriptの演算子の種類と役割 算術演算子の基本と使い方 比較演算子と条件式の仕組み 論理演算子(AND / OR / NOT)の動作 ビット演算子の基礎 代入演算子・ …

【JavaScript入門】関数の基本|定義方法・引数・return・呼び出し方を初心者向けに解説

2019/04/18   -基礎

この記事で分かること 関数とは何か(役割とメリット) 関数の定義方法(function の基本構文) 引数の使い方と複数引数の扱い方 return で値を返す仕組み イベント(onload / onc …

【JavaScript入門】外部ファイル(.js)の読み込み方|初心者向けにsrc属性の基本をわかりやすく解説

2019/04/03   -基礎

この記事で分かること JavaScript外部ファイル(.js)の読み込み方法 src 属性の正しい使い方 相対パス・絶対パスの違い 読み込み位置(head / body)の最適解 defer / a …

【JavaScript入門】条件分岐の使い方|初心者向けにif文・else文・switch文をわかりやすく解説

2019/04/14   -基礎

この記事で分かること 条件分岐とは何か if / else / else if の基本構造 複数行処理の書き方(ブロック) switch 文の使い方と break の役割 実例で理解する条件分岐の書き …

【JavaScript入門】breakとcontinueの使い方|初心者向けにループ制御の基本をわかりやすく解説

2019/04/16   -基礎

この記事で分かること break と continue の基本的な役割 ループ処理(for / while / do…while)での使い方 switch 文での break の重要性 処理を途中 …

このブログは Xserver 上の WordPress で運用しています。
表示速度が速く、安定しているのでブログ初心者にもおすすめです。

レンタルサーバー エックスサーバー

-基礎

執筆者: