X



+ JavaScript の質問用スレッド vol.135 +

■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2018/07/31(火) 12:30:52.90ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
次スレは>>950が(本スレで改善案があれば考慮して)立ててください

■規則/推奨ルール
・メール欄を空欄にし、名前にレス番を入れることを強く推奨(なりすまし防止)
・質問内容は具体的に。言葉だけでなく、出来る限り再現性を確認したサンプルコードの掲示。
・質問テンプレートの利用推奨。
・質問への「答え」だけでなく「意見」を出しても良い。

■禁止行為
・丸投げ質問
・迷惑スクリプトの質問
・オレオレ用語の使用(一般的な用語を使用する事)
・煽り、批判等の他人を不快にさせる行為(批判の代わりに「AよりBが良い」のような代案を出す事)

■質問テンプレート
【環境】OS, ブラウザをバージョンと共に記入してください。
【条件】期待する回答の条件を書いてください。
【何をしたのか】何をしたら問題の現象が発生するのか。再現手順を具体的に書いてください。
【エラーメッセージ】エラーメッセージがあれば正確に書き写してください。
【期待する結果】最終的にどういう結果を望んでいるのか、を書いてください。
【サンプルコード】現象を再現可能な最小限のコードを書いてください。
 1レスに収まらないならコード投稿サイトを利用してください。
 http://jsdo.it/ http://jsbin.com/ http://jsfiddle.net/ http://ideone.com/

■回答者へ
・回答には多様性があります。他人の回答を尊重してください
・動作ブラウザや環境が限られる場合は、それを明記してください
・他人の回答を批判する代わりに、自分ならこう書くという例を示してください
・質問者がJavaScriptでなければ実現できないと勘違いしてるなら、その否定としてHTMLとCSSで実装しても良い
・他人の回答を見たくないのであれば、文句をつける代わりにNGにして見えないようにしてください。文句をつける=荒らしです
0229Name_Not_Found
垢版 |
2018/09/01(土) 23:09:13.75ID:???
>>228
なんか根本的に間違ってるぞ。

jQueryのmapは二種類ある。
$.map と $().map だ。

前者は、(jQueryが開発された当時、存在しなかった)
JavaScriptのmap相当の機能を提供するものとして作られた。

後者はjQueryオブジェクト(=要素の配列をラップしたもの)に対して
mapを実行するもの・・・が基本ではあるんだが、jQueryオブジェクトというのは
いうのはDOMだけではなく任意のオブジェクトをラップすることが可能なので
いろんなものに使えたりはする。

で、JavaScriptのmapとして使いたいなら、$.mapの方を使う。これは配列が
mapメソッドの引数になっているという違いはあるがJavaScriptのmapと同じように使え、
真の配列だけではなくlengthプロパティがある配列っぽい(Array-like な)ものを
扱えるという便利さもある。

> みたいに入れ子にしないといけない、でよいでしょうか?
入れ子にしないといけないとかいうのは意味がわからん。
後者を変な使い方をしてるだけだろう。
あんたが欲しいものは前者だ。それ使っておけば悩むことなど無いはずだ。
0230Name_Not_Found
垢版 |
2018/09/02(日) 00:08:20.80ID:???
>>229
実際に試してみるとわかる
var arr=[1,2,3];
console.log( $.map(arr,_=>[1,2,3]) ); //[1, 2, 3, 1, 2, 3, 1, 2, 3]
console.log( arr.map(_=>[1,2,3]) ); //[Array(3), Array(3), Array(3)]
console.log( $.map(arr,_=>[[1,2,3]]) ); //[Array(3), Array(3), Array(3)]
ということではないかと
0231Name_Not_Found
垢版 |
2018/09/02(日) 00:23:21.84ID:???
>>230
マジかw それはしらなかった。

jQueryのmapってRubyでいうflat_mapだったんだ。
ってことはmapといいながら1対1での変換じゃなくて
要素を増やしたり減らしたりもできるってことか。

なんでjQueryのmapはdeprecatedにならないのかと
思っていたらそういうことだったんだな
0232Name_Not_Found
垢版 |
2018/09/02(日) 08:29:58.46ID:???
$.map, $().map

jQuery には、2種類のメソッドがある

$.メソッド名は、汎用的なユーティリティ関数で、
$().メソッド名は、this を持つ、インスタンスメソッド
0234Name_Not_Found
垢版 |
2018/09/02(日) 14:40:05.80ID:???
レシーバーに有益な値が渡されるという意味だろう
0236Name_Not_Found
垢版 |
2018/09/02(日) 19:19:10.92ID:???
thisを持てない関数とかメソッドってあるんか?
0237Name_Not_Found
垢版 |
2018/09/03(月) 11:57:20.99ID:???
thisを持つとかまた頭悪いオレオレ用語開発したなw
付き合ってあげるここの人たち優しい
0239Name_Not_Found
垢版 |
2018/09/08(土) 08:11:12.39ID:???
var tName = [];
var tNumber = [];
var i = 0;
var o = document.getElementsByTagName("a")[25];
for( i=6;i <=24;i++ ){
tName.push(document.getElementsByTagName("a")[i]);
tNumber.push(document.getElementsByTagName("a")[i-1]);
if(tName[i].textContent.includes("(1001)") == true){
tName[i].style.display = "none";
tNumber[i-1].style.display = "none";
}
}
if( o.textContent.includes('(1001)') == true ){
o.style.display = "none";
}
これ実行するとTypeError: tName[i] is undefinedって出るんですが原因わかる方いますか?
実行順序の関係だろうか.
0240Name_Not_Found
垢版 |
2018/09/08(土) 09:15:08.84ID:???
空のtNameにpushしてるから
ループ最初のi==6の時はtName[0]しかないぞ
0241Name_Not_Found
垢版 |
2018/09/11(火) 08:11:08.54ID:???
>>239
エラー出た時にブラウザでオブジェクトの中身覗いたら原因丸わかりじゃないですか?
いつもどういうデバッグしてるんですか
0242239
垢版 |
2018/09/11(火) 09:07:54.08ID:???
いつも割と気合と努力で(console.log)でゴリ押ししてたからなぁ汗
ブラウザのコンソールはエラーと警告が出るだけの場所だと思い込んでてまさかコード打ち込んでデバッグ出来るとは青天の霹靂だ
>>241
tNameは最初の一個しかないのが意味が分かりません
ほぼ同じソースコードだけど別のページだと動くのに.
ゴリ押ししたら動くのにforとarray使ったら動かなくなるのなんでなん
0244239
垢版 |
2018/09/11(火) 09:35:20.21ID:???
>>243
多分江戸時代とか…滝汗
0245Name_Not_Found
垢版 |
2018/09/11(火) 11:17:52.01ID:???
ループの中の if(tName[i].……の直前で
i と tName をconsole.log()にかけるコード1行入れりゃ理解できるんでね
0246Name_Not_Found
垢版 |
2018/09/11(火) 20:05:23.62ID:???
for使わずにtNameだけ書くと >>239

var tName = [];
var i=0;
//i=0からi=5は、何もしていない
console.log(tName); // []

i=6
tName.push('要素a');
console.log(tName); // ['要素a']
console.log(tName[i]);// undefined == tName[6]
i=7
tName.push('要素a');
console.log(tName); // ['要素a','要素a']
console.log(tName[i]); // undefined == tName[7]
//以下繰り返し
0247239
垢版 |
2018/09/11(火) 21:26:04.36ID:O/Ih3NeS
>>240-241,243,245-246
とりあえずこれで事なきを得ました。ありがとうございました。
var tName = [];
var tNumber = [];
var i = 0;
var o = document.getElementsByTagName("a")[25];
for (i = 6; i <= 24; i++) {
tName[i] = document.getElementsByTagName("a")[i];
tNumber[i-1] = document.getElementsByTagName("a")[i - 1]
if (tName[i].textContent.includes("(1001)") == true) {
tName[i].style.display = "none";
tNumber[i - 1].style.display = "none";
}
}
if (o.textContent.includes('(1001)') == true) {
o.style.display = "none";
}
0248Name_Not_Found
垢版 |
2018/09/20(木) 01:19:45.54ID:M6En9stL
質問です
JSというかYouTubeの問題かもしれませんが
iframeAPIを使ってYouTube動画を貼って、準備出来たら再生、とするのに

再生(playVideo())の前に消音(mute())した場合
http://jsfiddle.net/xvc70zn9/1/

消音(mute())しなかった場合
http://jsfiddle.net/q9x2Lfma/1/

Chromeで後者が再生されないのは、おま環でしょうか?
0249Name_Not_Found
垢版 |
2018/09/20(木) 07:03:57.75ID:???
そりゃiframe内の動画がユーザーアクション無しで音声流そうとすればブロックされて当然でしょ
いまデスクトップでもどんどん厳しくなてるんだから
WebAudioAPIとかもポリシー変更になるでしょ
0250Name_Not_Found
垢版 |
2018/09/20(木) 07:54:48.18ID:???
iframe自体けっこう嫌われてるからねぇ…
0251Name_Not_Found
垢版 |
2018/09/20(木) 08:36:18.13ID:???
俺よりは人に嫌われてないだろ
0252248
垢版 |
2018/09/20(木) 16:06:10.90ID:???
>>249
つーことは
俺環だけでなく、そちらでも再現してる?のかな?
0253Name_Not_Found
垢版 |
2018/09/20(木) 19:56:31.29ID:???
chrome://flags/#autoplay-policy
* Default
* No user gesture is required.
* User gesture is required for cross-origin iframes. <--
* Document user activation is required.
0254248
垢版 |
2018/09/20(木) 20:26:53.80ID:M6En9stL
>>253
それは知ってました
何れにせよこちらからのアクションは
postMessageで送っているようなので

不可解なのはなんでMuteすればOKなのかということです
なので、おま環なのかなーと
0256Name_Not_Found
垢版 |
2018/09/21(金) 03:16:51.27ID:dotAtO5R
window.addEventListener("load", function(e){
var list = document.getElementsByTagName('a');
ってやってるんだけど、aタグ一杯あるのにlistに空の配列が返される
しかも最近突然起こるようになったんだけど、何が原因かわかりますか
0257Name_Not_Found
垢版 |
2018/09/21(金) 04:44:56.02ID:VAKGU9vY
おま環、もしくは勘違いじゃね?
getElementsByTagNameが返すのは配列ではなくコレクションだから
配列が返ってるならおかしい
0258Name_Not_Found
垢版 |
2018/09/21(金) 06:53:34.00ID:???
>>254
なんで不可解なのかが不可解
ミュートだったら再生させることによる悪影響の可能性が小さいだろうってことは分かる?
モバイルではもっと前からミュートで見えてるビデオだけ自動再生可の仕様だったでしょ
そして最近デスクトップにも似た仕様が入ったでしょ

デベロッパーなら最低限このページのことくらいは把握しておかなきゃ駄目よ
https://www.chromestatus.com/features
0261Name_Not_Found
垢版 |
2018/09/21(金) 08:21:57.19ID:???
それは知ってました、がかんに障ったのだろう
0262Name_Not_Found
垢版 |
2018/09/21(金) 10:39:08.83ID:dotAtO5R
>>257
あ、配列じゃないのかこれ。NodeListというのが返ってきてlengthが0になっています
考えられるとしたらDOMがまだできていない等だけどloadイベント発火時にそんなことってあるのかな
0263Name_Not_Found
垢版 |
2018/09/21(金) 10:45:54.31ID:dotAtO5R
setTimeOutで待ってみても同じだから、DOM構築が間に合ってないってわけではないっぽい
0264Name_Not_Found
垢版 |
2018/09/21(金) 11:13:03.46ID:???
F12でコンソール開いてdocument.getElementsByTagName("a")って打ってみて
0265Name_Not_Found
垢版 |
2018/09/21(金) 11:28:14.50ID:dotAtO5R
>>264
やってみた。それだと正常に取得されました
0266Name_Not_Found
垢版 |
2018/09/21(金) 12:17:10.91ID:dotAtO5R
ブラウザの設定の問題だった、自決しました
0269Name_Not_Found
垢版 |
2018/09/21(金) 14:05:45.51ID:???
わたし女子校生だけど自?しちゃいました
0272Name_Not_Found
垢版 |
2018/09/22(土) 12:37:31.98ID:???
javascriptもclassを実装したの?
煩雑なprototypeは改めて欲しい。
0278Name_Not_Found
垢版 |
2018/09/23(日) 13:21:48.31ID:???
プロトタイプはクラスと比較してもしなくてもこれ以上無いくらい簡単な仕組みで
複雑なのはnew演算子だって何回言ったら分かるんだろうね
0279Name_Not_Found
垢版 |
2018/09/23(日) 17:26:58.66ID:???
>>278
実装が簡単なのと使い方が簡単なのをごっちゃにしてるぞ

例えば、gotoはコレ以上無いくらいに簡単な仕組みだ、
そのgoto一つで分岐処理、ループ処理、例外処理、
処理の流れを変えることはなんでもできる

だけど、使うのは難しい


原子的な機能であればあるほど、実装は簡単で
いろんな応用ができる。だけどそのせいで間違った
使いかたもできるから、使いこなすのは難しんだよ
0280Name_Not_Found
垢版 |
2018/09/23(日) 18:33:56.68ID:???
javascriptにgotoなんてあったのか
0281Name_Not_Found
垢版 |
2018/09/23(日) 20:20:44.92ID:???
gotoなんてBASICでしか使っとらんわ
0282Name_Not_Found
垢版 |
2018/09/23(日) 20:35:50.12ID:???
小学生の時にBASICやってたなあ
そんでGOTOやGOSUBのなにがいかんのかイマイチわからん
0283Name_Not_Found
垢版 |
2018/09/23(日) 20:49:30.64ID:???
問題が出るのはたとえばこういう場合

・後でコードを見たときに
・意図や目的のコメント文がぜんぜんなくて
・大きく飛んだり戻ったりで全容を掴むのが至難の業で
・書いた本人も気づいてないgoto由来のバグが潜んでる

よって、次のことが言える
自分がメンテするのでなければ何も問題がない
0284Name_Not_Found
垢版 |
2018/09/23(日) 21:09:16.57ID:???
お腹に刺さると死ぬから包丁は使うべきじゃない
的な
0285Name_Not_Found
垢版 |
2018/09/23(日) 21:22:47.34ID:???
うむ
バカは何使ったってやらかすからなあ
0286Name_Not_Found
垢版 |
2018/09/23(日) 22:24:22.73ID:???
バカって言う奴がバカなんだよこのおバカ
0287Name_Not_Found
垢版 |
2018/09/24(月) 06:08:00.47ID:???
gotoって確か行数かマーカー依存だったよな
行数の場合、ソース変更したら処理が変わるし、マーカーだと処理を追いにくいからあまり推奨されてない
大規模開発だと(他人にソースコードを読ませる関係上)問題になるが個人での開発ならそれほど問題にならない
0289Name_Not_Found
垢版 |
2018/09/24(月) 07:19:42.04ID:???
goto乱用よりも
仕様ひっくり返すユーザ、設計をひっくり返す上流SE、みたいな
0290Name_Not_Found
垢版 |
2018/09/24(月) 07:33:59.02ID:???
要件を正しく伝えない蔵担当者
勝手に要件を追加する蔵担当者の上司
最終段階で「これ本当に必要なの〜?」とぶちかます蔵の社長、とか
0291Name_Not_Found
垢版 |
2018/09/24(月) 08:24:51.47ID:qVm0iow+
質問です 自分は障害持ちで将来的に在宅で
仕事したいと思っとります 在宅でのweb系の仕事を考えるなら、javascriptとphpどちらを先に勉強すべきでしょうか?すぐに仕事に繋がりやすいのはどちらでしょうか?

大金稼ぎたいとかじゃなく、少し稼げれば良いです 宜しくお願いします
長文失礼しました
0292Name_Not_Found
垢版 |
2018/09/24(月) 08:53:47.35ID:???
まずwebのことなんて一旦忘れて
c書けるようになってサーバ操作に慣れろ
0293Name_Not_Found
垢版 |
2018/09/24(月) 09:13:28.95ID:???
>>291
考え方が逆
何ができれば良いか、ではなく何が出来なくても許されるか、だね

んで在宅≒フリーランスだとあまりないかもなあ、出来なくてもいいこと
デザインくらいかなあ
0294Name_Not_Found
垢版 |
2018/09/24(月) 10:17:28.91ID:???
最近この手のクラワのステマじみた何かをよく見かけるな
0295Name_Not_Found
垢版 |
2018/09/24(月) 11:16:10.15ID:???
>>291
WebAssemblyもあるから何とも言えんな
C++とjavascript学んでおけばいいんじゃね
0296Name_Not_Found
垢版 |
2018/09/24(月) 12:12:14.47ID:QPDHbMRA
ウェブサイトにアニメーションを実装するとなると
Canvas使うよりよりSVGやCSSアニメーションのほうが優勢ですか

例えばページ背景に複数の円が色を変えながら動き続けるとかです
0298Name_Not_Found
垢版 |
2018/09/24(月) 12:35:16.68ID:qVm0iow+
>>295
c +は難しそうですね phpがオススメとも聞きましたが、逆の意見も耳にします
0299Name_Not_Found
垢版 |
2018/09/24(月) 22:37:14.39ID:???
>>296
WEB+DB vol.106 に、次世代のアニメ規格、Web Animations API の記事が載っている

これのPolyfill として、web-animations-js が公開されている
0300Name_Not_Found
垢版 |
2018/09/25(火) 19:14:49.93ID:???
次世代ではなく十分枯れた技術だから
0301Name_Not_Found
垢版 |
2018/09/26(水) 08:02:02.87ID:???
言うほど枯れてるだろうか?
そんなに使われまくってる?
0302Name_Not_Found
垢版 |
2018/09/26(水) 08:39:06.25ID:???
原則CSSのanimation/keyframesと一緒でしょ
枯れてると言って良いと思う
0303Name_Not_Found
垢版 |
2018/09/26(水) 11:58:19.18ID:???
> 原則CSSのanimation/keyframesと一緒でしょ
> 枯れてると言って良いと思う

だめだろ。できることが一緒でも、
それを実現している技術は最近だろ?
これはCSSではない新しい技術なのだから枯れてない

長い期間実際に使われてないなら枯れてるとは言えない
0305Name_Not_Found
垢版 |
2018/09/26(水) 12:50:57.65ID:???
実際に多くの人に使われてるかどうかは関係ない
同時期の技術で言うとWebRTCのように使うべき人が使ってきて
議論が出尽くして仕様が固まって可能性も粗方掴めた段階で枯れてると言える
もう先人が試しきってるんだからね
0306Name_Not_Found
垢版 |
2018/09/26(水) 13:44:48.03ID:???
次世代とかウン十年前のゲーム機の宣伝文句じゃないんだから
0308Name_Not_Found
垢版 |
2018/09/26(水) 20:34:22.87ID:???
>>304
まだドラフトかよw
枯れてるとか嘘じゃん
0309Name_Not_Found
垢版 |
2018/09/27(木) 00:34:13.60ID:???
ドラフトだったら枯れてない
初めて聞いたな
0310Name_Not_Found
垢版 |
2018/09/27(木) 00:55:12.08ID:???
>>309
あなたは、ドラフト(草案)がもうこれから
変わらない仕様だと断定したいんですかね?w

https://www.nttpc.co.jp/yougo/%E6%9E%AF%E3%82%8C%E3%81%9F.html
> しかし単に古いだけでなく「すでにトラブルが出尽くしていて、
>そのトラブルも解決され尽くしている」といった意味が強い。

ブラウザで実装してこの仕様でなにかトラブルがないですかー?って
調べてるのが今の段階で、トラブルはまだ出尽くしていない

枯れるわけがないだろ。常識で考えろや
0311Name_Not_Found
垢版 |
2018/09/27(木) 00:55:20.49ID:???
これらの書き込みで1600円の雑誌が何冊余計に売れるのかね
0312Name_Not_Found
垢版 |
2018/09/27(木) 00:58:45.74ID:???
枯れてない=トラブルが多く仕様が不安定

とすると
枯れてない=使い物にならない可能性が高い、細かいトラブル対応はネット漁るしかない=本見る意味なし
枯れてる=トラブルが出尽くし解決され尽くすほど普及してる=mdnで十分、本見る意味なし
0313Name_Not_Found
垢版 |
2018/09/27(木) 01:07:19.34ID:OWyFps6e
青い
熟れてる
枯れてる

で分けよう
0314Name_Not_Found
垢版 |
2018/09/27(木) 06:55:13.68ID:???
>>310
意味分からん
ブラウザはまだAPIの一部しか全然実装してないし個々何年もする気もないだろ
ずっと見てきたわけもでないのにしったげに言うな
むしろ使う人が居なくて仕様の中核以外の部分は廃止されてもおかしくないような状態だから
もう枯れ切ってるんだよ
崩れる前に使い始めようっていうのに近い
0315Name_Not_Found
垢版 |
2018/09/27(木) 09:18:42.53ID:???
>>314
意味がわからんのは、お前が「"仕様"が枯れた」なんて
意味不明なことを言ってるからだよ

いいか? 俺らは使う側。APIを使う。使うにはブラウザに実装されていなきゃいけない。
いくら仕様がずーっと前から変わらなかったとしても、それがブラウザに実装されてない以上
使えないし、Polyfillがあろうがブラウザに実装されようが、それなりの期間使われてないと
バグがあるかもしれない。だからいくら仕様が安定してようが「"実装"は枯れてない」んだよ
それとも何か?「枯れてるけど使えません。」とか言うつもりか?
0316Name_Not_Found
垢版 |
2018/09/27(木) 10:15:33.47ID:???
枯れたっつーのは、なんつうか、こう
世界中のいろんな現場で使い倒されてる感がないとね
0317Name_Not_Found
垢版 |
2018/09/27(木) 11:21:11.09ID:???
Web技術は枯れてからようやく使われるようになる
色んなメディアやブログが取り上げ始めたらその合図
0318Name_Not_Found
垢版 |
2018/09/27(木) 11:25:19.89ID:???
>>315
俺らは使う側?は?何言ってんだお前。
Webって言うのは皆で作っていくもんだろ
その大原則を忘れるとかアホかお前
ほんとアホなこと言ってる暇あったらMLに参加するなり、実装にパッチ投げたりしろよドアホ
皆が苦労して決まりきってから腰を上げるお前みたいなのに仕様が云々語る権利は一切無い
0319Name_Not_Found
垢版 |
2018/09/27(木) 13:12:21.97ID:???
皆で作っていく(大爆笑)
0320Name_Not_Found
垢版 |
2018/09/27(木) 15:18:15.36ID:???
Webの世界(要するにウェブサイト)は皆で作るが
仕様は皆で作らない
0323Name_Not_Found
垢版 |
2018/09/27(木) 19:17:15.78ID:???
>>315
> だからいくら仕様が安定してようが「"実装"は枯れてない」んだよ
いつの間にか、「実装が枯れてない」にすり替わってる
0324Name_Not_Found
垢版 |
2018/09/27(木) 19:34:58.09ID:???
っていうか実装が枯れてないというのがどうも
枯れてるものを移植したら枯れてない新世代ぎじゅつに様変わりするのか?んなわけないだろ
0325Name_Not_Found
垢版 |
2018/09/27(木) 19:56:10.37ID:???
(ここ何のスレだっけ…)
0327Name_Not_Found
垢版 |
2018/09/27(木) 20:44:00.60ID:???
枯れてる枯れてないの話も、不毛なところも、まさに
0328Name_Not_Found
垢版 |
2018/09/28(金) 07:11:51.47ID:???
不毛でも感覚をぶつけ合って少しでもすり合わせておくことは大事
皆がバラバラな方向いてたらWebは崩壊する
■ このスレッドは過去ログ倉庫に格納されています