+ JavaScript の質問用スレッド vol.123 + [転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。
■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
(ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
※必ず「問題の事象が再現されること」を確認してください。
必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
+ JavaScript の質問用スレッド vol.122 +(c)2ch.net
http://peace.2ch.net/test/read.cgi/hp/1420095379/
(ライブラリ禁止条項は、多数の意見によって廃止されました。ライブラリの質問もOKです) JavaScriptでリアルタイムアクションゲームが作れる日は来るのだろうか? >>797
ストリートファイター3はさすがに無理だよね? 何でUnityはjavascriptを外したんだよ、バカヤロー。
あと、Unreal.jsって何なんだよ。
もっと本格的なjavascript用のゲーム開発ツールを作ってほしい。 現在調べつつ手元で適当に色々と試していた初心者なのですが
document.write("alert" alert(1) "alert");
document.write("alert" alert(1) in"alert");
document.write("alert"(alert(1))"alert");
document.write("alert" (alert(1)) in"alert");
これで最後の物だけalert(1)が動作したのですが理由がわかりません
このin演算子はなんのためにあるのでしょうか
mozillaのリファレンスも読んだのですが論理値を返すということしか分かりませんでした 1〜3番目は構文解析の時点でエラーになるので何も実行されない
4番目は"alert"(alert(1))という関数呼び出しとみなされその引数を得るためにalert(1)を実行するから
でもそのあとダイアログを閉じるとエラーになる
inの右側は文字列じゃなくてオブジェクト
その指定したオブジェクトにinの左側に指定した名前のプロパティが存在するかどうかを調べる演算子
それからdocument.writeなんて使わない。使ってるような所も手本にしちゃだめ >>802
ありがとうございます!
"alert"()という関数と見做すんですね…関数名に文字列指定できるのは意外でした
とりあえずdocument.write()は使わないようにします 質問です
JavaScript API 群のブラウザ実装状況
https://developer.mozilla.org/ja/docs/Mozilla/Add-ons/WebExtensions/Browser_support_for_JavaScript_APIs
に記載されている数字の意味を教えてください
例えば一覧表のの一番上にあるAlarmは
Chrome あり
Edge なし
Firefox 45
とありますが、45の意味が分かりません
同じくこの表全体で数字が何を意味しているのかが分からないです。意味を教えてください。 audio要素使ってautoplayしようとしたのですが
だいぶ前にブラウザのポリシーで塞がれてしまったようです
Chrome版Edgeとか一部のブラウザはまだいけるようです
ソシャゲでなってるのがあったのでソースをみたのですが
かろうじてCreateJS使ってるぐらいまではわかったのですが
そこから先は解読出来ませんでした
ChromeとFirefoxぐらいには対応したいのですがなんかハックありますか?
ググったら色々紹介されてはいるのですが
そのころよりさらにaudio事情が進んだようで今はもう使えないような感じでした >>808
再生ボタンを自動でクリックさせるようにしたらいいだけじゃなかろうか?
再生ボタン.click();
みたいな感じで Webサイトを提供する側の話で
利用する側の話ではないんじゃ? ブラウザゲーだとaudioタグじゃなくてWebAudioAPI使ってるかもね >>808
autoplayはもう自分の努力じゃ無理
統計的によく利用されてるサイトかどうかが許される基準に含まれてる >>609-612
レスありがとうございます。
youtubeとか自動再生される時もあるのですが(基本手動)、
やっぱもう難しい感じなんですかね。
WebAudioAPIに関してですが、MDN見ると、
>自動再生のブロックは、Mozilla でもまだ開発中です。
と書いてるので、それもいずれ塞がれる方向なんですかね。
ゲームとかならサウンドONとか設定で選ばせばよさそうですが、
今回は思いもよらない音声で閲覧者を爆笑させるという趣旨だったので、
諦めようと思います。 すみません、javascriptというよりDOMの質問なのですが教えて下さい。
ある要素の子に要素を追加したいとき、element.appendChild()
みたいな形ができると思いますが、大量に子要素を一気に追加したいとき、
なにかよいやり方あるのでしょうか?
element.appendChild()の引数で配列を渡せればよかったのですが、
うまくいきませんでした。 >>814
$("#id").append(["<hr>", "<hr>", "<hr>", "<hr>"]);
$("#id").append([$("<hr>"), $("<hr>"), $("<hr>"), $("<hr>")]); Document.createDocumentFragment()
https://developer.mozilla.org/ja/docs/Web/API/Document/createDocumentFragment
フレームワークなどでは、DocumentFragment を使う
一旦、DOM と無関係の場所に、複雑な木を構築しておいて、
最後に、1回だけDOMにアクセスして、木を丸ごと追加する
これで、その都度、DOMアクセスしなくてもよい。
1回だけで済む >>818
ParentNode.append()も内部でDocumentFragment使ってるぞ
createDocumentFragment()して
fragmentにappendChild()する部分を代わりにやってくれる 複雑でないなら
文字列で必要なhtml作っておいて
最後にポンと追加するのがバランスいい >>813
安定させたければ
PWAをインストールしてもらうしかない こんばんはー!
INPUTでpattern書いてバリデートしているときに
今入力文字列が正しいか正しくない(赤枠光ってる)かを
JavaScriptで拾うことは可能ですか? こんなコードあったんですがどういうこしですか?
(function test(){
ここにいっぱい処理が書いてある
})(); >>827
関数を定義して実行してる(即時実行)
そのケースはスコープを切る目的で使ってる >>829
ありがとうございます
では
function test(){
ここにいっぱい処理が書いてある
}
test();
と同じことですね?
なぜそんなひねくれたコードにするんですかね。
よくわからないのは混乱のもとなのに。 >>830
そう書くとグローバルのスコープにtestという名前の関数ができて名前空間を汚染する
ライブラリの作者なんかを含めてみんながそれやっちゃうと名前が衝突するでしょ あー、moduleが一般的でない時代の名残だと思ってもらっていいよ
今はESのmodule使えば必要ない IEで動くように修正しろ、今すぐ、いつ出来るか?すぐ返事 IE9でもJSは動くようになりましたが、CSSのtransformが効きません
全部jQueryで書き直してください
ってことでサポート外ブラウザは仕事受けたら負け 書き直せばええやん
そのためにIEサポート用の追加費用もらってるんやろ なお貰っておらず言われたらしぶしぶ追加対応する運ゲーやってるマヌケもいる模様 個人相手だったら
そいつの年収の7割以上になるくらい発注しておいて
値下げに応じないなら全部引き上げますが
ってやるのよな 初見 Mathjaxについて質問
これ、バージョンが2と3でstyle要素に書く文言が大きく変わったみたいなんだが、分かりやすく説明してるサイト教えて >>844
人手不足だからその会社の業績が怪しくならない限り必要なくなるということが無い >>846
取りあえずレスサンクス
俺的にはデベロッパー目線の説明よりエンドユーザー目線での説明が欲しかったが。
今までVer2.7.5をCDNで使ってたんだが、今後ヘッダ部にどういう<script>要素を記入すればいいのか、
これまでにVer2.7.5で作ってきた数学の記事のソースをどうすればいいのか、分からないことだらけだわ >>847
MathJax = {
chtml: {
matchFontHeight: false
},
tex: {
inlineMath: [['$', '$']]
}
};
MathJax.Ajax.config.path["Contrib"] = "//cdn.mathjax.org/mathjax/contrib";
MathJax.Hub.Config({
TeX: { extensions: ["color.js","AMSmath.js","AMSsymbols.js","[Contrib]/xyjax/xypic.js"] },
tex2jax: { inlineMath: [['$','$'], ["\\(","\\)"]] }
});
このバージョン3用への書き換えが上手く行かない。。。。 この辺とか参考にならんかね?
もっと詳しくは総本山のドキュメントが一番参考になると思うけど
https://text.baldanders.info/release/2019/09/mathjax-v3-is-released/
まあ2までの書き方を忘れるか
2を使い続けてもいいんでない? >>852
サンクス。ググってもVer3用のページってあんまりヒットしなかったのによく見つけたな >>854
>>847使った。
color.js, AMSmath.js, AMSsymbols.js,
はVer3にあるせいか、
loader: {
load: ['[tex]/color', '[tex]/ams']
}
っていう風に書き換えてくれるけど、
"[Contrib]/xyjax/xypic.js"]
の部分は正しく処理されてないな。
MathJax.Ajax.config.path["Contrib"] = "//cdn.mathjax.org/mathjax/contrib";
が関係してるんだろうけど、この部分をもちゃんと正しく処理したい Ver3の読み込みにしても、Script要素
src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/startup.js" id="MathJax-script"
と
id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"
とが、例えばあるようだけど、
この”startup.js"と”tex-mml-chtml.js”の違いも分からん 教えてエロい人。
今からジャバスクリプトを始めようか悩んでます。
ジャバスクリプトをすっとばしてタイプスクリプトから始めるってのはありっすか? >>858
やることはそんなに変わんないと思うけどね
TSはJSわかってる前提のような気もするが 途中で送信してしまった
でもまあ、大丈夫なんじゃない?
Excelとか今後、VBA捨ててTSにするらしいし
そしたら、JSなんて知らずにTS書く人がたくさんになるんだろうし >>860
そうなんですか。タイプスクリプトを勉強します。
ありがとうございます。 <body onload="test">
<body onload="test()">
<body onload="test();">
いつもどれか迷う。
迷いを消せるコツはありますか? onload属性使わずにaddEventListenerする >>867
onload属性に渡すのは関数なんだよ
1つ目は関数を渡してる
残りは関数を実行した結果の返り値を渡してる >>855っす。
xyjax.jsを使う部分だけが未だ未解決 すまんjsってエスケープは正規表現リテラルのときだけでいいのけ?
文字列型はしなくていいんだよな? <head>
<meta charset="UTF-8" />
<title>JavaScript本格入門</title>
</head>
<body> <scritpt type="text/javascript"> // window.alertは、指定された文字列をダイアログ表示するための命令です。
window.alert(’こんにちは、世界!'); scritpt → script
('こんにちは → ('こんにちは <noscript>JavaScriptが利用できません。</noscript>
</body>
</html> >>886
廃れてないよ。今年は大幅増
https://w3techs.com/technologies/history_overview/javascript_library/all/y
jQuery
2017年 71.9%
2018年 73.1% (+1.2%)
2019年 73.6% (+0.5%)
2020年 74.2% (+0.6%)
2021年(仮) 76.5% (+2.3%) ※10ヶ月 終わったと言っている人たちは
ウェブアプ系の開発をしている人たちなんだけど
数はそう多くないんだよ
日々アホみたいに大量に作られていく
企業、商品サイトやLPなどの
広告系ウェブページに比べたら
んで後者では相変わらずjQはフィットしてんだな
その量が最近増えてるってことだろう
みんなステイホームしてんだから
そりゃ広告も増えるよねということなんじゃないかな UTFー8で保存したがsafariで開くと文字化けした。 <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <title>JavaScript本格入門</title> </head> <body> <script type="text/javascript"> // window.alertは、指定された文字列で表示するための命令です。 window.alert(’こんにちは、世界!’); </script><noscript>JavaScriptが利用できません。</noscript> <body> </html>
ダイアログが開かない。 【環境】 Win7-Pro,Chrome85.0
【何をしたのか】 文字列の最後の点「.」を削るコード
【エラーメッセージ】 無し
【期待する結果】 例えば、 -4. とあったとき、最後の点「.」が不要なのでこれを消したい
【サンプルコード】
対象の文字列を str としたとき
if( str.slice(-1) === '.' ) str.slice(0, -1);
でOKな筈ですが、console.logでは何ら変化がありません。何が問題なのでしょうか? 何の問題もないぞ
let str = 'aiu.';
if( str.slice(-1) === '.' ) str = str.slice(0, -1);
console.log(str); //aiu ■ このスレッドは過去ログ倉庫に格納されています