Chrome – インクループ株式会社|神奈川県相模原市 ホームページ制作、WEBマーケティング https://incloop.com インクループ株式会社は、お客様の顧客獲得をマーケティングを活用して支援する会社です。 データ分析、市場調査に基づく企画立案、コンテンツ制作、運用を通じてお客様の目標を実現します。 Thu, 19 Nov 2020 00:59:16 +0000 ja hourly 1 https://wordpress.org/?v=4.9.19 HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました Part.2 https://incloop.com/html%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e9%83%a8%e5%93%81%e3%82%92%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%94%e3%81%a8%e3%81%ab%e6%a9%9f%e8%83%bd%e6%af%94%e8%bc%832/ https://incloop.com/html%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e9%83%a8%e5%93%81%e3%82%92%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%94%e3%81%a8%e3%81%ab%e6%a9%9f%e8%83%bd%e6%af%94%e8%bc%832/#respond Mon, 19 Sep 2016 13:32:53 +0000 https://incloop.com/?p=8280 HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました

プログラム解析やコーディング作業中に独り言が多くなるのが気になるお年頃になりました、網干です。 集中力が途切れ […]]]>
HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました

プログラム解析やコーディング作業中に独り言が多くなるのが気になるお年頃になりました、網干です。
集中力が途切れてようやく独り言を発している事に気づきます…悪い癖です。

そんな私が独り言をフルに発揮して、コツコツ作ってきたクラウドアプリ、以前からちょくちょく情報を小出ししていた「SimpleOrder」の大幅アップデートを行いました!
以前は順番待ち特化のシステムでしたが、いくつかの機能追加とデザインの変更で、カスタマイズ次第ではミニホームページが完成するシステムになりました!
「SimpleOrder」は0円から使えますので、ぜひお試しください!
無料で使えるシンプルな順番待ち・受付管理アプリ simple order
シンプルな順番待ちアプリシンプルオーダー

さて、今回のブログ内容ですが。
前回に引き続き、HTMLのformタグで指定するinput要素で、HTML5で追加されたtype属性のブラウザごとの動きの違いを記載します。
前回は”email”、”url”、”search”、”tel”、”number”、”date”の六つの機能を各ブラウザで見て比較しました。
前回の記事はこちら:

月曜担当に戻ってまいりました、網干です。今回は、HTMLのformタグで指定するinput要素で、HTML5で追加されたtype属性のブラウザごとの動きの違いを記載します。今まで...
HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました Part.1 - incloop.com

今回は”datetime”、”datetime-local”、”month”、”week”、”time”、”range”、”color”の7つの機能を各ブラウザで見て比較します。

確認を行うブラウザの一覧

今回確認を行うブラウザは下記の4種類になります。
1. Google Chrome バージョン 53.0.2785.101 m (64-bit)
2. Microsoft Edge バージョン 25.10586.0.0
3. Firefox バージョン 48.0.2
4. Safari バージョン 5.1.7 (7534.57.2)

HTML5から追加されたtype属性一覧

今回は、HTML5から追加された下記のtype属性の確認を行います。

それでは早速、ブラウザごとに機能の違いを見ていきましょう!

type属性に”datetime”を指定した際の機能比較

1. GoogleChromeの場合

どんな入力でも送信可能
Google Chromeでdatetimeを表示した場合

2. Microsoft Edgeの場合

どんな入力でも送信可能
Microsoft Edgeでdatetimeを表示した場合

3. Firefoxの場合

・どんな入力でも送信可能
Firefoxでdatetimeを表示した場合

4. Safariの場合

・テキストボックスの増減ボタンで年、月、日、時、分が自動入力される
・どんな入力でも送信可能
Safariでdatetimeを表示した場合

type属性に”datetime-local”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内には数値以外は入力不可
・増減ボタンで入力数値の増減が可能
・テキスト内のクリアボタンで入力をクリアできる
・年、月、日、時、分の入力が一つでも欠けている場合は送信押下時にエラーが表示される。
・カレンダーを表示して年、月、日を設定することが可能
※入力が空白の場合は送信可能
Google Chromeでdatetime-localを表示した場合

2. Microsoft Edgeの場合

・テキスト内の日付部分をクリックすると年、月、日を設定するウインドウが表示される
・テキスト内の時間部分をクリックすると時、分を設定するウインドウが表示される
・どちらか片方が空白でも送信可能
※入力が空白の場合は送信可能
Microsoft Edgeでdatetime-localを表示した場合1
Microsoft Edgeでdatetime-localを表示した場合2

3. Firefoxの場合

・どんな入力でも送信可能
Firefoxでdatetime-localを表示した場合

4. Safariの場合

・テキストボックスの増減ボタンで年、月、日、時、分が自動入力される
・どんな入力でも送信可能
Safariでdatetime-localを表示した場合

type属性に”month”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内には数値以外は入力不可
・増減ボタンで入力数値の増減が可能
・テキスト内のクリアボタンで入力をクリアできる
・年、月の入力が一つでも欠けている場合は送信押下時にエラーが表示される。
・カレンダーを表示して年、月を設定することが可能
※入力が空白の場合は送信可能
Google Chromeでmonthを表示した場合

2. Microsoft Edgeの場合

・テキスト内の日付部分をクリックすると年、月を設定するウインドウが表示される
※入力が空白の場合は送信可能
Microsoft Edgeでmonthを表示した場合

3. Firefoxの場合

・どんな入力でも送信可能
Firefoxでmonthを表示した場合

4. Safariの場合

・テキストボックスの増減ボタンで年、月が自動入力される
・どんな入力でも送信可能
Safariでmonthを表示した場合

type属性に”week”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内には数値以外は入力不可
・増減ボタンで入力数値の増減が可能
・テキスト内のクリアボタンで入力をクリアできる
・年、週の入力が一つでも欠けている場合は送信押下時にエラーが表示される。
・カレンダーを表示して年、週を設定することが可能
※入力が空白の場合は送信可能
Google Chromeでweekを表示した場合

2. Microsoft Edgeの場合

・テキスト内の日付部分をクリックすると年、週を設定するウインドウが表示される
※入力が空白の場合は送信可能
Microsoft Edgeでweekを表示した場合

3. Firefoxの場合

・どんな入力でも送信可能
Firefoxでweekを表示した場合

4. Safariの場合

・テキストボックスの増減ボタンで年、週が自動入力される
・どんな入力でも送信可能
Safariでweekを表示した場合

type属性に”time”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内には数値以外は入力不可
・増減ボタンで入力数値の増減が可能
・テキスト内のクリアボタンで入力をクリアできる
・時、分の入力が一つでも欠けている場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Google Chromeでtimeを表示した場合

2. Microsoft Edgeの場合

・テキスト内の時間部分をクリックすると時、分を設定するウインドウが表示される
※入力が空白の場合は送信可能
Microsoft Edgeでtimeを表示した場合

3. Firefoxの場合

・どんな入力でも送信可能
Firefoxでtimeを表示した場合

4. Safariの場合

・テキストボックスの増減ボタンで時、分が自動入力される
・どんな入力でも送信可能
Safariでtimeを表示した場合

type属性に”range”を指定した際の機能比較

1. GoogleChromeの場合

・レンジバーが表示され、左右に調整することで数値を増減させる
Google Chromeでrangeを表示した場合

2. Microsoft Edgeの場合

・レンジバーが表示され、左右に調整することで数値を増減させる
・レンジバーの移動中は数値が表示される
Microsoft Edgeでrangeを表示した場合

3. Firefoxの場合

・レンジバーが表示され、左右に調整することで数値を増減させる
Firefoxでrangeを表示した場合

4. Safariの場合

・レンジバーが表示され、左右に調整することで数値を増減させる
Safariでrangeを表示した場合

type属性に”color”を指定した際の機能比較

1. GoogleChromeの場合

・カラー選択の入力欄が表示され、クリックすると別ウインドウで色の設定が可能
Google Chromeでcolorを表示した場合

2. Microsoft Edgeの場合

・カラー選択の入力欄が表示され、クリックすると別ウインドウで色の設定が可能
Microsoft Edgeでcolorを表示した場合

3. Firefoxの場合

・カラー選択の入力欄が表示され、クリックすると別ウインドウで色の設定が可能
Firefoxでcolorを表示した場合

4. Safariの場合

・どんな入力でも送信可能
Safariでcolorを表示した場合

以上で、HTML5から追加されたtype属性の各ブラウザでの比較は終了です。

最後に

いかがでしたか?

Part.1の記事も通して見ていただければわかりますが、ブラウザごとに見た目も機能も大きく異なっています。
そのため、どれか一つだけをカバーするだけではお客様が使うシステムとしては不十分になってしまいます。
ブラウザ上で表示するシステムを開発する際には注意しなければなりませんね。

今回は、SimpleOrderの作成途中でtype属性の”color”で問題が発覚したため、今回のような調査を行うキッカケを得ることができました。
私が作成したシステムで、私の知らないところで不十分な機能あるかもしれないのは非常に恐ろしいですね…。
ですが、失敗は非常に貴重な経験となりますので、しっかりと理解して次に活かしていきましょう!

ではまた!

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

]]>
https://incloop.com/html%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e9%83%a8%e5%93%81%e3%82%92%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%94%e3%81%a8%e3%81%ab%e6%a9%9f%e8%83%bd%e6%af%94%e8%bc%832/feed/ 0
HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました Part.1 https://incloop.com/html%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e9%83%a8%e5%93%81%e3%82%92%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%94%e3%81%a8%e3%81%ab%e6%a9%9f%e8%83%bd%e6%af%94%e8%bc%831/ https://incloop.com/html%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e9%83%a8%e5%93%81%e3%82%92%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%94%e3%81%a8%e3%81%ab%e6%a9%9f%e8%83%bd%e6%af%94%e8%bc%831/#respond Mon, 12 Sep 2016 09:58:19 +0000 https://incloop.com/?p=8073 HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました

月曜担当に戻ってまいりました、網干です。 今回は、HTMLのformタグで指定するinput要素で、HTML5 […]]]>
HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました

月曜担当に戻ってまいりました、網干です。

今回は、HTMLのformタグで指定するinput要素で、HTML5で追加されたtype属性のブラウザごとの動きの違いを記載します。
今までは「ブラウザごとに違いがあるといっても、そんなに大きな違いはないのでは?」と思っていましたが、大間違いでした…。

フォームの部品は、あらかじめスタイルが決まっていたり、入力制限をしてくれたりと、便利で頼れる機能ではあるのですが、
全ブラウザが対応してるわけではないので、エンジニアの想定とは異なる動きをしてしまう場合があります。
従って、様々なブラウザで見られるようにするには注意が必要です。

[2016.9.19更新]
第2弾は”datetime”、”datetime-local”、”month”、”week”、”time”、”range”、”color”の7つの機能を各ブラウザで比較しました。

プログラム解析やコーディング作業中に独り言が多くなるのが気になるお年頃になりました、網干です。集中力が途切れてようやく独り言を発している事に気づきます…悪い癖...
HTML5のtype属性を各ブラウザ(Chrome、Edge、Firefox、Safari)で比較してみました Part.2 - incloop.com

確認を行うブラウザの一覧

今回確認を行うブラウザは下記の4種類になります。
1. Google Chrome バージョン 53.0.2785.101 m (64-bit)
2. Microsoft Edge バージョン 25.10586.0.0
3. Firefox バージョン 48.0.2
4. Safari バージョン 5.1.7 (7534.57.2)

HTML5から追加されたtype属性一覧

今回は、HTML5から追加された下記のtype属性の確認を行います。

type指定フォーム部品送信ボタン

ブラウザごとに各type属性の表示を確認してみる

本当にブラウザごとに表示が違うのか…?
早速確認してみましょう!
(以下、実験用サイトにて表示確認をした画像になります)

Google Chromeで表示すると…

Google Chromeで表示した場合

Microsoft Edgeで表示すると…

Microsoft Edgeで表示した場合

Firefoxで表示すると…

Firefoxで表示した場合

Safariで表示すると…

Safariで表示した場合

このように、同じtype属性を使っているにも関わらず、見た目が違うものが多くあります。
特に type=”range” に関しては見事に全てのブラウザでスタイルが一致していません。

アプリやソフトウェアの開発をしていると、説明書等のドキュメントを作成する際に、画面のスクリーンショットを張り付けて説明をすることが多いです。
上記のように、ブラウザで表示するサービスを開発した際に、ブラウザごとに見た目が異なってしまうと、PCを日常的に使わない、または、そもそもコンピュータになかなか触れないユーザーさんは画面の違いに戸惑ってしまいます。

なので、こういった部分はできる限り統一した作りにするように、注意しなければなりません。

…と、自分への戒めの言葉はここまでにして。

見た目に違いがあるのはわかったので、機能にはどのような違いがあるのか、見ていきましょう。

今回は”email”、”url”、”search”、”tel”、”number”、”date”の六つの機能を各ブラウザで見て比較します。
(後半の七つの機能は来週のブログに載せる予定です。)

type属性に”email”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内の入力が’文字列’ + ‘@’ + ‘文字列’の形式でない場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Google Chromeでemailを表示した場合

2. Microsoft Edgeの場合

・テキスト内の入力が’文字列’ + ‘@’ + ‘文字列’の形式でない場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Microsoft Edgeでemailを表示した場合

3. Firefoxの場合

・テキスト内の入力が’文字列’ + ‘@’ + ‘文字列’の形式でない場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Firefoxでemailを表示した場合

4. Safariの場合

・どんな入力でも送信可能
Safariでemailを表示した場合

type属性に”url”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内の入力が’http:’ + ‘文字列’の形式でない場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Google Chromeでurlを表示した場合

2. Microsoft Edgeの場合

・テキスト内の入力が’http:’から始まる文字列でない場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Microsoft Edgeでurlを表示した場合

3. Firefoxの場合

・テキスト内の入力が’http:’から始まる文字列でない場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Firefoxでurlを表示した場合

4. Safariの場合

・どんな入力でも送信可能
Safariでurlを表示した場合

type属性に”search”を指定した際の機能比較

GoogleChrome、Microsoft Edge、Firefox、Safariの場合

・どのような入力でも送信可能(※画像はGoogleChromeになります)
Google Chromeでsearchを表示した場合

type属性に”tel”を指定した際の機能比較

GoogleChrome、Microsoft Edge、Firefox、Safariの場合

・どのような入力でも送信可能(※画像はGoogleChromeになります)
Google Chromeでtelを表示した場合

type属性に”number”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内には数値以外は入力不可
・増減ボタンで入力数値の増減が可能
※入力が空白の場合は送信可能
Google Chromeでnumberを表示した場合

2. Microsoft Edgeの場合

・テキスト内には数値以外も入力可能
・テキスト内のクリアボタンで入力をクリアできる
・数値以外の入力がある場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Microsoft Edgeでnumberを表示した場合

3. Firefoxの場合

・テキスト内には数値以外も入力可能
・増減ボタンで入力数値の増減が可能
・数値以外の入力がある場合は送信押下時にエラーが表示される。
※入力が空白の場合は送信可能
Firefoxでnumberを表示した場合

4. Safariの場合

・テキスト内には数値以外も入力可能
・数値以外を入力した場合は、マウスカーソルのフォーカスが移動した際にテキストボックスがクリアされる
・増減ボタンで入力数値の増減が可能
※入力が空白の場合は送信可能
Safariでnumberを表示した場合

type属性に”date”を指定した際の機能比較

1. GoogleChromeの場合

・テキスト内には数値以外は入力不可
・増減ボタンで入力数値の増減が可能
・テキスト内のクリアボタンで入力をクリアできる
・年、月、日の入力が一つでも欠けている場合は送信押下時にエラーが表示される。
・カレンダーを表示して年月日を設定することが可能
※入力が空白の場合は送信可能
Google Chromeでdateを表示した場合

2. Microsoft Edgeの場合

・テキスト内をクリックすると年月日を設定するウインドウが表示される
※入力が空白の場合は送信可能
Microsoft Edgeでdateを表示した場合

3. Firefoxの場合

・どのような入力でも送信可能
Firefoxでdateを表示した場合

4. Safariの場合

・どのような入力でも送信可能
・増減ボタンをクリックすると年月日が入力されて値が増減する
Safariでdateを表示した場合

今回はここまでになります。

最後に

いかがでしたか?

まだ六つしか紹介していませんが、ブラウザの違いで機能が大幅に違うものもありましたね!
入力の形式が変わってしまうと、フォームのデータを受信する側も、データの受け取り方を考えなければなりません。
また、データベースを使用する場合は、記録する際にデータの形式を統一する必要もありますね。

今回の続きは来週のブログで書きますので、またよろしくお願い致します。

ではまた!

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

]]>
https://incloop.com/html%e3%81%ae%e3%83%95%e3%82%a9%e3%83%bc%e3%83%a0%e9%83%a8%e5%93%81%e3%82%92%e3%83%96%e3%83%a9%e3%82%a6%e3%82%b6%e3%81%94%e3%81%a8%e3%81%ab%e6%a9%9f%e8%83%bd%e6%af%94%e8%bc%831/feed/ 0
Google ChromeのデベロッパーツールでJavaScriptのデバッグを行う方法② https://incloop.com/%e3%83%87%e3%83%99%e3%83%ad%e3%83%83%e3%83%91%e3%83%bc%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7javascript%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e8%a1%8c%e3%81%86%e2%91%a1/ https://incloop.com/%e3%83%87%e3%83%99%e3%83%ad%e3%83%83%e3%83%91%e3%83%bc%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7javascript%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e8%a1%8c%e3%81%86%e2%91%a1/#respond Mon, 25 Jul 2016 14:10:15 +0000 https://incloop.com/?p=6851 GoogleChromeでJavascriptのデバッグを行う方法を紹介

季節外れの風邪を引いてしまった網干です、皆さんも体調管理には気を付けましょう。 今回は、先週に引き続きGoog […]]]>
GoogleChromeでJavascriptのデバッグを行う方法を紹介

季節外れの風邪を引いてしまった網干です、皆さんも体調管理には気を付けましょう。

今回は、先週に引き続きGoogle Chromeのデベロッパーツールを使って、JavaScriptのデバッグを行う方法を記載します。

先週は「ブレークポイントを張る」と「プログラムの途中で変数の値を変更する」という内容の記事を書かせていただきました。
前回の内容は本記事では説明を省きますので、詳細が気になる方は下記リンクをクリックしてください。

ぼーっとしていたら三連休が終わってしまいました…、悲しい気持ちの網干です。今回は、Google Chromeのデベロッパーツールを使って、JavaScriptのデバッグを行う方法を...
Google ChromeのデベロッパーツールでJavaScriptのデバッグを行う方法 - incloop.com

さて、今回は前回で説明しきれなかった下記の項目について書かせていただきます。
①実行開始/停止
②ステップオーバー
③ステップイン
④ステップアウト

※なお、Google Chromeのバージョンは「51.0.2704.106 m」を使用します。

それではさっそく、各機能の説明をしていきます。

実行開始/停止

前回と同じように、ストップウォッチのようなスクリプトを使いながら説明を行います。

まず初めに、ストップウォッチのスタートボタンを押します。
カウンタが動いている状態で、右上の一時停止ボタンを押します。
プログラムを一時停止させる

すると…
プログラムの一時停止画面

ブレークポイントで止まっている状態と同じ画面になりました。
これは、プログラムがcount関数に入る直前で止まっている状態になります。
このように、一時停止ボタンはプログラムを一時的に止めることができます。

では次に、一時停止したプログラムを再度動かしてみましょう。

右上のアイコンを確認すると、一時停止ボタンが再生ボタンに変化しています。
再生ボタンを押してみましょう。
プログラムを再生する
ストップウォッチ再起動

ストップウォッチがまた動き始めましたね!
これがプログラムの「実行開始」と「実行停止」になります。

ステップオーバー

ステップオーバー」は関数内の処理を一行ずつ行う機能になります。
関数の動きが正しいかどうか確認を行う際に使用することが多いです。

使用例としては…

関数内にブレークポイントを張ります。
ブレークポイントを張る

ストップウォッチをスタートさせます。
すると、ブレークポイントで処理が止まります。
変数の値を確認

sec++の行に入ってきたので、次の処理でsec変数は1になるはずです。
では、右上のステップオーバーボタンを押してみましょう。
ステップオーバーをクリックする
変数の値を確認

期待通り、sec変数は1になりました。
また、プログラムは再開せずに、次の行で止まっています。
ここで、ステップオーバーボタンをもう一度押して、別関数の実行直前で止めてみます。
別関数の直前でプログラムを停止

この状態でステップオーバーボタンを押すと、関数を実行してから次の行で止まります。
関数が実行されていることを確認

このように、ステップオーバーは関数内の処理のみに注目して確認を行う機能になります。

ステップイン

ステップイン」は別関数の処理も含めて一行ずつ処理を行う機能になります。
一連の処理が正しいかどうか確認を行う際に使用することが多いです。

使用例としては…

関数内にブレークポイントを張ります。
ブレークポイントを張る

ストップウォッチをスタートさせます。
すると、ブレークポイントで処理が止まります。
変数の値を確認

sec++の行に入ってきたので、次の処理でsec変数は1になるはずです。
では、右上のステップインを押してみましょう。
ステップインを実行
変数の値を確認

期待通り、sec変数は1になりました。
また、プログラムは再開せずに、次の行で止まっています。
ここで、ステップインをもう一度押して、別関数の実行直前で止めてみます。
別関数の直前でプログラムを停止

この状態でステップインを押すと、関数の中に入って処理が止まります。
関数の中に入ることを確認

このように、ステップインは別関数の処理も含めて一行ずつ処理を行う機能になります。

ステップアウト

ステップアウト」は関数内の処理を終わらせて、関数を抜けた後にプログラムを停止させる機能になります。

使用例としては…

関数内にブレークポイントを張ります。
ブレークポイントを張る

ストップウォッチをスタートさせます。
すると、ブレークポイントで処理が止まります。
変数の値を確認

count関数の確認は済んだので、この関数は確認しません。
そのため、右上のステップアウトボタンを押します。
ステップアウトを実行する

すると、プログラムが関数を終わらせて、関数を抜けた後にプログラムを停止させます。
(関数が実行されたのでsec変数が”1″になっています)
変数の値を確認する

このように、ステップアウトは関数を抜けた後にプログラムを停止させる機能になります。

最後に

いかがでしたか?
今回はプログラムの開始/停止に関する内容を書かせていただきました。
前回と今回の内容で、スムーズにjavascriptのデバッグができるハズです。
私はまだここまでの知識しかありませんが、更にデバッグの知識が増えた際には、
続きの記事を書かせていただきます!

ではまた!

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

]]>
https://incloop.com/%e3%83%87%e3%83%99%e3%83%ad%e3%83%83%e3%83%91%e3%83%bc%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7javascript%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e8%a1%8c%e3%81%86%e2%91%a1/feed/ 0
Google ChromeのデベロッパーツールでJavaScriptのデバッグを行う方法 https://incloop.com/%e3%83%87%e3%83%99%e3%83%ad%e3%83%83%e3%83%91%e3%83%bc%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7javascript%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e8%a1%8c%e3%81%86/ https://incloop.com/%e3%83%87%e3%83%99%e3%83%ad%e3%83%83%e3%83%91%e3%83%bc%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7javascript%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e8%a1%8c%e3%81%86/#respond Mon, 18 Jul 2016 14:58:49 +0000 https://incloop.com/?p=6613 JavaScriptのプログラムをデバッグする方法

ぼーっとしていたら三連休が終わってしまいました…、悲しい気持ちの網干です。 今回は、Google Chrome […]]]>
JavaScriptのプログラムをデバッグする方法

ぼーっとしていたら三連休が終わってしまいました…、悲しい気持ちの網干です。
今回は、Google Chromeのデベロッパーツールを使って、JavaScriptのデバッグを行う方法を記載します。

おおまかな内容としては…
①ブレークポイントを張る
②プログラムの途中で変数の値を変更する

上記に関して記載します。
※Google Chromeのバージョンは「51.0.2704.106 m」を使用します。

先週(7月14日)に吉見さんがデベロッパーツールに関しての記事を書かれていたので、
ネタを取られる前にデベロッパーツールの理解をより深めるために、関連した記事を書きます!
関連記事:【WEBサイトの色(カラーコード)が知りたい!】えっ!?拡張アプリは使わないの?

デバッグとは

“デバッグ”とはプログラムのバグを取り除く作業のことです。
デバッグを行うには、プログラムがどのように動いているのか確認をしなければなりません。
プログラムの動作を確認するには、下記のような方法があります。
①コンソール画面にログを出力する
②ログファイルを出力する

ですが、上記の方法はプログラムを動かして動作が完了するまで待機しなければなりません。
そのため、プログラムが複雑であったり、長い時間動かすことを想定したプログラムの場合は、デバッグ作業に大幅な時間を使うことになります。
また、非常に特殊な条件でしか発生しない分岐がある場合は、動作確認が不可能になってしまう場合もあります。

しかし、上記のようなデバッグで発生する問題を解決してしまう機能がデベロッパーツールには備わっています!
無料のツールなのに、どこまで素晴らしい機能を備えているのか…。
Google Chromeさんは非常に恐ろしいです。

ということで、早速デベロッパーツールを使ってデバッグをしてみましょう!

デバッグの準備を行う

まずはじめに、Google Chromeを起動してデバッグを行うページを開いてください。
ページ内にカーソルを合わせて”F12″キーを押すと、横(または下)にデベロッパーツールのウインドウが表示されます。
デベロッパーツールのウインドウ

今回は吉見さんの時とは違って「Elements」タブではなく「Sources」タブを表示します。
「Sources」の画面でスクリプトを記載したファイルを選択してソースコードを表示させます。
デベロッパーツールのウインドウにソースコードを表示

もし「Sources」にファイルが存在しない場合は、右側の「…」→「Go to file…」を選択してください。
デベロッパーツールのウインドウでソースコードを探す

ファイルやらなにやらの一覧が表示されるので、その中からスクリプトを記載したファイルを選択してください。
デベロッパーツールのウインドウでソースコードを選択

これで準備は完了しました。
では次に、デバッグで重要なブレークポイントを張っていきましょう。

デベロッパーツールでブレークポイントを張る

ブレークポイントとは、実行中のプログラムを停止させるポイントになります。
…たった1行でブレークポイントの説明をしたので、湧き上がる感動が一切ありませんでしたが…。
Google Chromeのデベロッパーツールで、

実行中のプログラムを停止させるポイントが設定できるのです!

そう!これがデベロッパーツールの凄いところなんです!
基本的に、デバッグはプログラムが動いた結果を見て動作を確認しなければならないのですが、
プログラムが動いている最中に確認ができてしまうのです!

さて、ではどうやってブレークポイントを張るのかというと…。

ソースコードが表示されている画面で、プログラムを止めたい行にマウスカーソルを合わせて左クリックします。
ブレークポイント設定

クリックした行数が青色になって、右のウインドウの「Breakpoints」に行の内容が表示されます。
はい、ブレークポイントの設置は以上で完了です。
本当に使いやすいUIですね。何か悔しい。

では、ブレークポイントを張った状態でプログラムを動作させてみましょう。
今回はストップウォッチのようなプログラムを組んで動作させました。
以下、ソースコードになります。

・xxx.html

<form name="TimeForm">
	<input type="button" value="スタート" onClick="timer1 = setInterval('count()', 1000)">
	<input type="button" value="ストップ" onClick="TimerStop()"><br>
	経過時間:<input type="text" name="text1" size="8" value="00:00:00">
</form>

・xxx.js

hour = 0;
min = 0;
sec = 0;
startFlg = false;

function count(){
	sec++;
	startFlg = true;
	// 60秒に到達?
	if( sec == 60){
		min++;
		sec = 0;
		// 60分に到達?
		if( min == 60){
			hour++;
			min = 0;
		}
	}
	h = hour;
	m = min;
	s = sec;
	// 数値が1桁の場合は先頭に0を付けて"00"の形で統一
	if( h < 10 ){
		h = '0' + h;
	}
	if( m < 10 ){
		m = '0' + m;
	}
	if( s < 10 ){
		s = '0' + s;
	}
	// テキストエリアに時間を表示
	document.TimeForm.text1.value = h + ':' + m + ':' + s;
}

function TimerStop(){
	if(startFlg == true){
		// タイマーを止める
		clearInterval(timer1);
	}
}

ストップウォッチの設置が完了したのでスタートボタンを押してみましょう。すると…
動作停止中

ストップウォッチが止まり、画面に「Paused in debugger」と書かれたメニューが表示されたり、
ブレークポイントを張った行が青色で囲われたりしています。
これは、プログラムがブレークポイントの位置に達したため、停止している状態になります。

今回ブレークポイントを張った位置は「sec変数が60になったら処理を行う」という条件で入ってくる部分になります。
※sec変数は秒数を格納しています。
では、本当にsec変数は60になっているのか、確認してみましょう。

デベロッパーツールの「Watch」タブの「+」を押します。
変数確認方法

sec変数がどうなっているか確認したいので、「sec」を入力してEnterキーを押します。すると…
変数入力
変数表示

sec変数の現在の値が表示されました!
期待通り、sec変数が60になってから条件の中に入っていますね!

ちなみに、変数の確認方法はもう一つあります。
プログラムの停止中に、変数にマウスカーソルを当てると変数の値が表示されます。
マウスカーソルを合わせて変数の値を確認

1つ1つ確認するのは面倒なので、確認したい変数を全てWatchに登録しましょう!
確認する変数を登録

登録した変数の内容が全て表示されましたね!
※ブレークポイントの位置でプログラムが停止しているため、min++が実行されていないことにも注目してください。

これで知りたい情報を全て知ることが可能になりました。

デバッグ作業を行う

ブレークポイントを張ることで、プログラムを停止させて変数の値を確認することができるようになりました。
しかし、ブレークポイントを張って変数の値を確認するだけでは、
デバッグの方法としてはコンソールの表示やログの出力と大差ありません。

今回の参考プログラムを見ると、次に確認したい条件はif(min == 60)となっているため、
60分間待ってから確認をしなければなりません。
この無駄な時間を解消してくれる凄い機能が、デベロッパーツールに備わっています!

では、何をするのかというと…。

ブレークポイントでプログラムが止まっている状態で、変数の値を変更しちゃいます。
今回の例では、minの値を60にして条件に入ることを確認しちゃいます。

では、実際にやってみましょう。
ブレークポイントを張ってプログラムを止めたら、
右のウインドウの「Scope」タブから「Local」→「this: Window」をクリックします。
変数一覧表示

リストに項目が大量に並んでいますが、下の方へスクロールしてmin変数を探します。
変数を探す

min変数の値をダブルクリックします。
変数の値を選択する

min変数に59を入力します。
※min++の実行がまだなので、min変数に59を入力すると次の行で60になります。
変数の値を変更

if(min ==60)の条件式にブレークポイントを張ってから、
右上の矢印ボタンを押して再度プログラムを動かします。
プログラムを動かす
プログラムが動いた後の変数を確認

min変数が60になっていますね!
ということは、if(min ==60)の条件式の中に入るはず…。
右上の湾曲した矢印のアイコンをクリックして、プログラムを1行だけ実行させます。
プログラムを1行だけ実行
プログラムが1行だけ実行されたことを確認

条件式の中に入りましたね!
無事にmin変数を60に変更することができました。

このように、プログラムの途中で変数の値を変更させることで、
無駄な時間を省いてデバッグができるようになります!

最後に

いかがでしたか?
今回はブレークポイントと変数の代入に関して記事を書かせていただきました。
最低限のデバッグは今回の記事で可能ですが、デベロッパーツールにはもっと便利な機能があります。
今回は「ステップオーバー」「ステップイン」「ステップアウト」等のデバッグに欠かせない機能の
説明を省いているので、どこかのタイミングでブログに書こうと思います。

ではまた!

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

]]>
https://incloop.com/%e3%83%87%e3%83%99%e3%83%ad%e3%83%83%e3%83%91%e3%83%bc%e3%83%84%e3%83%bc%e3%83%ab%e3%81%a7javascript%e3%81%ae%e3%83%87%e3%83%90%e3%83%83%e3%82%b0%e3%82%92%e8%a1%8c%e3%81%86/feed/ 0
Chromeの「要素の検証」(デベロッパーツール)を右側に表示する方法 https://incloop.com/chrome%e3%81%ae%e3%80%8c%e8%a6%81%e7%b4%a0%e3%81%ae%e6%a4%9c%e8%a8%bc%e3%80%8d%e3%82%92%e5%8f%b3%e5%81%b4%e3%81%ab%e8%a1%a8%e7%a4%ba/ https://incloop.com/chrome%e3%81%ae%e3%80%8c%e8%a6%81%e7%b4%a0%e3%81%ae%e6%a4%9c%e8%a8%bc%e3%80%8d%e3%82%92%e5%8f%b3%e5%81%b4%e3%81%ab%e8%a1%a8%e7%a4%ba/#respond Mon, 27 Jul 2015 13:40:13 +0000 https://incloop.com/?p=3683

Googleが提供している無料ブラウザのChromeはパソコン版、モバイル版(スマホ、タブレット)などに対応す […]]]>

Googleが提供している無料ブラウザのChromeはパソコン版、モバイル版(スマホ、タブレット)などに対応する最新の技術が詰め込まれたブラウザです。

最近は利用者も増えてきましたが、やはりChromeはまだまだIT技術に詳しい人の利用がメインユーザーのようです。

WEB開発するなら手放せないデベロッパーツール

このChromeブラウザに搭載されている機能の中で、WEBサイトやWEBアプリを制作する時に非常に活躍するのが右クリックするとコンテキストメニューの中にある「要素の検証」(デベロッパーツール)です。

WEB系の開発者なら誰もがお世話になる便利すぎるツールです。

このツールはF12を押すか、右クリックしてコンテキストメニューから表示することができます。

※下段に表示されているのがデベロッパーツールです。
要素の検証は標準だと下に表示されます

デベロッパーツールを右側に表示するためには「長押し」が必要

このツールは標準では下側に表示されるのですが、最近のフルHDのディスプレイのような横長サイズだと右側に表示したほうが個人的には使いやすいと思います。

右側に表示するためには、下の赤枠の位置にあるアイコンを

長押し

すると、赤枠で囲んだデベロッパーツールを右側に表示するためのアイコンが表示されます。

長押しで表示される

このアイコンを選択するとデベロッパーツールが右側に表示されます。

デベロッパーツールが右側に表示された図

この「長押し」をいつも忘れてしまうんですよね。。。

他のアイコンの意味

右側表示以外にも、標準の下側表示(上のアイコン)、また別ウインドウ表示(下のアイコン)もあります。

20150727_chrome_05

環境に応じて使い分けるとさらに便利にデベロッパーツールを活用することができると思います。

デベロッパーツールの使い方についてはまた次の機会にでも紹介したいと思います。

この記事であなたの課題を解決することができましたか?

疑問点があったり、解決できなかったことがありましたら、お気軽にご相談してください。

]]>
https://incloop.com/chrome%e3%81%ae%e3%80%8c%e8%a6%81%e7%b4%a0%e3%81%ae%e6%a4%9c%e8%a8%bc%e3%80%8d%e3%82%92%e5%8f%b3%e5%81%b4%e3%81%ab%e8%a1%a8%e7%a4%ba/feed/ 0