video要素やaudio要素がJavaScriptで再生できたりできなかったりする

Webページ上でvideo要素やaudio要素を再生するためにJavaScriptでplay()メソッドを使っても再生できない場合があります。また、別のタイミングでは再生できる場合もあります。

これは、突然の音声による迷惑を防止するためのブラウザの自動再生防止機能が原因として考えられます。この機能は事前にページに対して操作がされないと、動画や音声の再生をさせないという機能です。ページに対する操作は何でもよく、機能のないボタンをクリックしても、何でもないページの一部をクリックしても動画や音声の自動再生が可能となります。この自動再生防止機能を知らないと、動画や音声が再生されない原因を追及中に、無意識にページの何でもない部分をクリックしてしまい、現象の再現に失敗してしまうことになります。

対策はコンテンツ開始のためのボタンを作ることです。また、動画の音声をmutedにより止めておくと、動画だけの自動再生ができることもあるようです。

HTMLのtextareaにJavaScriptで改行を入れる

HTMLの複数行の文字入力が行えるtextareaタグによる入力領域において、JavaScriptから改行を入れるには若干の注意が必要です。まず、textareaの入力領域に文字を入れるには、value属性を活用する必要があります。また、文字列の改行はプログラミングにおける定番の「\n」が使用可能です。

例えば、

<textarea id="TA1">

というコードがHTMLにある場合、

document.getElementById('TA1').value="情報\n技術";

のようにすれば「情報」と「技術」の間に改行の入った文字列をプログラムから入力することができます。value属性を使わずに、innerHTMLやinnerTextなどでも入力領域の文字を変更できますが、改行はできません。innerHTMLに「<br>」代入すれば改行できそうですが、そのまま「<br>」が表示されることになります。