質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

6599閲覧

JavaScriptのonclickイベントで、「is not defined xxx」のエラーが消えない

syake_ume

総合スコア5

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/04/28 07:59

編集2020/04/28 08:23

onclickで関数を実行したいのですが、どうやっても
「Uncaught ReferenceError: illuminance is not defined at displayDate (watch.js:171) at HTMLInputElement.onclick (watch.html:106)」のエラーが消えません。

HTML

1<input type="button" value="保存" onclick="update(illuminance)">

JavaScript

1function update(illuminance) { 2 document.getElementById("value").innerHTML = illuminance + " lux"; 3} 4 5if ("AmbientLightSensor" in window) { 6 try { 7 var sensor = new AmbientLightSensor(); 8 sensor.addEventListener("reading", function (event) { 9 update(sensor.illuminance); 10 }); 11 sensor.start(); 12 } catch (e) { 13 console.error(e); 14 } 15} 16if ("ondevicelight" in window) { 17 function onUpdateDeviceLight(event) { 18 update(event.value); 19 } 20 window.addEventListener("devicelight", onUpdateDeviceLight); 21} 22 23function displayDate() { 24 var txt = document.getElementById("txt"); 25 txt.innerHTML = "lux:" + illuminance; 26 setInterval('displayDate()', 10000); 27}; 28

自分なりに調べてみて引数にthisを指定したりしたのですが、解決しませんでした。
onclickで指定していないと普通に動くので、なぜこのエラーが出てしまうのか分かりません。
よろしくお願いいたします。

追記
onclickで環境光センサーの値を出力したいと考えています。
(onclick指定をしないと、ちゃんと動く様になっています。)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/04/28 08:08

illuminanceはどこでどのように定義していますか?
m.ts10806

2020/04/28 08:15

HTMLもなるべく全体提示された方が良いと思います。 今作ろうとしているものの要件とか、実現したい機能とか。
m.ts10806

2020/04/28 08:18

質問は編集できます。「自身のコードとして」質問本文に追記してください。
m.ts10806

2020/04/28 08:22

あとは結局は何を実現しようとして書いたコードか、ですね。 エラーを取り除くだけで良ければ難しくはないですが、要件通り動作させることのほうが大事なので。
m.ts10806

2020/04/28 08:52

そもそも「illuminance 」で何を渡したいのでしょう
退会済みユーザー

退会済みユーザー

2020/04/28 10:09

動作確認しているOSとブラウザを教えてもらえますか? AmbientLightSensorというAPIを使っていることは上のコメントで分かったのですが、 手持ちの環境では全部Not supportedでした。 Mac:Chrom、Safari、Firefox Android:Chrom iOS:Chrom、Safari
syake_ume

2020/04/28 15:54

>Lishさん コメントありがとうございます。 私も最初は動かず苦労したのですが、調べてみた所環境光センサーはhttps環境下でしか動かない様です。 私は現在github経由でコーディング・テストしている状態です。
syake_ume

2020/04/28 15:59

>m.ts10806さん コメントありがとうございます。 illuminanceはAmbientLightSensorの環境光(lux)を渡すものだと思って書いていました。
退会済みユーザー

退会済みユーザー

2020/04/28 16:54

>https環境下でしか動かない 私のローカルの環境はSSL対応してあるんですよね、それでも動かない。。。 上のコメントで貼っていただいている、APIについて書いてあるサイトも「https」で、 そのページの「Support in your browser」のところで、今見ているブラウザが対応か否か確認できるとお思うのですが、どのブラウザで見ても「Not supported」なので、、、 なにか特別な設定等されてるのかなと思って質問してみた次第です。
guest

回答1

0

おす!

<input type="button" value="保存" onclick="update(illuminance)">

ここの illuminanceは

<input type="button" value="保存" onclick="update(" + illuminance + ")">

こんな感じにしねぇとダメだと、おら、思うぞ。

で、illuminanceって何へぇってるんだ?

投稿2020/04/28 08:07

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/04/28 08:08

あれ? おら、メチャクチャなこと言ったな。
退会済みユーザー

退会済みユーザー

2020/04/28 08:09

おら、適当な事言ったぞ。無視してれよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問