+ JavaScript の質問用スレッド vol.123 + [無断転載禁止]©2ch.net

■ このスレッドは過去ログ倉庫に格納されています
2017/04/02(日) 23:30:38.56ID:Qcd0Qmy10
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-6のテンプレを読んだ上で質問してください。次スレは>>950>>2のテンプレ案(本スレで改善案があれば考慮)を元に立ててください

■質問を書く上で
(1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。
(2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。
  (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など)
(3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。
(4) 常に自発的に調べる心構えを持ってください。
  具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。
  わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。
(5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。
(6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。
  ※必ず「問題の事象が再現されること」を確認してください。
   必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。
(7) サンプルコードに HTML が含まれる場合は http://validator.w3.org/ で [Check] してみてください。
(8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2の質問テンプレートを活用してみてください。
(9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。
(10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。

※前スレ
+ JavaScript の質問用スレッド vol.122 +
http://echo.2ch.net/test/read.cgi/tech/1472426483/
VIPQ2_EXTDAT: checked:vvvvvv:1000:512:----: EXT was configured
2019/06/11(火) 19:04:23.38ID:vib91KXZ0
>>149
ありがとうございます
すみません、ダメだと勝手に思っていました
実行してみたのですが、その場合はobjのオブジェクトとしてtestが登録?されるのですね

(2)の方は、左辺のobj.testのtestは変数で、右辺のtestがfunction test() ということで、
(2)は obj = {test : function test( )} になったということですか?
2019/06/11(火) 19:59:25.40ID:/ckGx9mb0
>>148
const func = test;
const ret = test();

console.log(typeof func);
console.log(typeof ret);

の結果を読むと参考になるかもしんない
2019/06/11(火) 20:19:37.39ID:/ckGx9mb0
"this" の挙動で悩ましい・悩ましかった部分については

var self = this

でググると色々分かるとおもう
2019/06/12(水) 08:18:21.06ID:0T71Qniwr
>>150
言葉で説明するよりも、コンソールデバッグや要所にbreakpointを設定して確かめる方がわかりやすいと思う

var obj = {};
console.log(test);
console.log(obj.test);
obj.test = test;
console.log(obj.test);

おそらく、基礎的な知識が足りてないので、「オブジェクト初期化子」「オブジェクト」「プロパティ」をキーワードにリファレンスをあたってみるべき
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Object_initializer
横着して、基礎を疎かなままに、入門している印象がある
2019/06/12(水) 12:30:14.19ID:vXZu8+ru0
便乗質問なんだけど、一般論として

const obj = {};
obj.test = 1;

とか書いたとき、

・前者は「オブジェクト初期化子」と呼ばれる
・後者は「プロパティ」を新たに定義して、値を結び付けている

という理解でok?
2019/06/12(水) 12:47:51.89ID:0T71Qniwr
>>154
概ね、その理解でいいかと
呼び名に関しては、アクセサ、ドット記法、ブラケット記法などあるが
https://tc39.es/ecma262/#sec-property-accessors
2019/06/12(水) 13:13:57.48ID:vXZu8+ru0
>>155
ご返答ありがとうございます。

ちなみに

>>148
> 1つ下の行でobj.testとしていますが、なぜこれが許されるのでしょうか?

これって、Cの構造体とか、C++ / Java のクラス定義からのインスタンス生成あたりが念頭にある気がするんですけど
気のせいですかねえ…。
2019/06/12(水) 13:34:09.25ID:vXZu8+ru0
https://paiza.io/projects/XNcmQ1UsoTrp11cEdW7nYQ

これでいきなり p.test = 1; とか書いたらコンパイルエラーになるっしょ
2019/06/12(水) 22:43:10.82ID:u6W2+u+x0
違う言語だもの
2019/06/12(水) 23:06:46.69ID:BQdPzZx+0
>>148
> 1つ下の行でobj.testとしていますが、なぜこれが許されるのでしょうか?

>>149
> 悪いが、なぜobj.testに代入が許されないと思っているのか、理解出来ない

この一連の流れ、ちゃんと読んでる?
質問者の自然な感覚としては obj.test が許される理由が分からんと言ってるんだよ
「そういう考え方が何故出て来るのか」って話だよ
2019/06/13(木) 10:04:10.06ID:BF3Tm3uUd
javascriptは何でもありだからなあ。
161デフォルトの名無しさん (ワッチョイ db7d-HQ34 [124.154.254.129])
垢版 |
2019/06/20(木) 00:28:57.80ID:iJJms4bW0
ホームページのドロワー部分で躓いています。
ドロワーが開いているときに、iosでも背景を固定してかつドロワーはスクロールできるようにするにはどうすればいいでしょうか?
ネットで探して試したことは、
event.preventDefault();をpassive: falseで使うやつ。(ドロワーもスクロールできなくなるので却下)
overflow:hidden;(iosだと効かない)
position:fixed;(スクロールが一番上に移動してしまうので却下)
です。

あとは、「ドロワー以外のtouchmoveではスクロール量を変化させない」という方法で出来ないかとやってみたのですがうまくいきませんでした。
2019/06/20(木) 07:18:00.12ID:So5aQwHx0
>>154
var obj = { };
obj.test = 1;

これは、Singleton

そのインスタンスだけに、そのプロパティを作った。
そのインスタンスだけに、そのプロパティは存在する

同じだけど、下のように書いた方が、わかりやすい

上だと、インスタンスの外部から設定したように見えるが、
下では、内部で設定したように見える。
あくまでも、印象に過ぎないけど

var obj_2 = { test: 1 };

>>161
この板よりも、web制作管理板のスレの方へ、書き込んで!
この板のスレは、向こうのスレを荒らされて、緊急避難用に作っただけなので、見てる人が少ないから
2019/06/20(木) 07:33:26.10ID:A8TT12fta
>>162
>>156で解決済
向こうは荒れてるから、こちらで質問されても全く問題ない
2019/06/21(金) 00:50:19.10ID:h1wQF7Na0
test
2019/06/21(金) 00:53:12.91ID:CWdRTwZC0
za
166デフォルトの名無しさん (ワッチョイ aa61-uGan [61.245.75.112])
垢版 |
2019/06/26(水) 00:13:18.62ID:kt7frSjI0
質問です。setTimeout内で引数渡しのある即時関数の書き方を教えてください。
下のコードでは"F1="+i+"<BR>"が1秒ごとにwriteされるようにしたいのですが、
待ち時間なしで処理されてしまいます。

F0(0);
function F0(stage){
if(stage<5){
setTimeout((function(i,j){
F1(i,stage);
})(stage*2,stage), 1000);
}else{
document.write("end");
}
}
function F1(i,j){
document.write("F1="+i+"<BR>");
j++;
F0(j);
}
2019/06/26(水) 00:38:45.47ID:OukDf0at0
>>166
色々言いたいことはあるけど

>function(i,j){
> F1(i,stage);
>})(stage*2,stage)
即時実行してるから当然の結果

ちゃんと渡し方があるから↓読んで
setTimeout(function,delay,stage*2,stage);
https://developer.mozilla.org/ja/docs/Web/API/WindowTimers/setTimeout
2019/06/26(水) 04:22:30.93ID:7Iy6MpfG0
>>166
こういうこと?

let id_interval;
let i = 0;

const p = document.createElement("p");
document.body.appendChild(p);
p.innerHTML = "";
const show = function() {
if (i === 5) {
p.innerHTML += "end<br>";
clearInterval(id_interval);
} else {
p.innerHTML += "F1=" + i * 2 + "<br>";
i++;
}
}
id_interval = setInterval( show, 1000);
169166 (ワッチョイ 8f61-uGan [218.185.157.249])
垢版 |
2019/06/26(水) 22:30:11.20ID:J30P6jfD0
>>167のリンクの通り4〜6行目を
setTimeout(function(i,j){
F1(i,stage);
}, 1000,stage*2,stage);
にしたら動きましたー
単なる構文間違いですね…
2019/06/27(木) 09:21:42.75ID:fQHO+2au0
>>169
せめて document.write 使うのは止めよう

https://jsbin.com/bupupay/edit?html,js,output
たとえばこんな感じ(これも、innerHTML 使ってる上にサニタイズしてないから、本来はあんまり良くない)
2019/06/27(木) 10:12:39.75ID:fQHO+2au0
https://jsbin.com/sakuwif/edit?html,js,output

「サニタイズ」とか意識しなくて良く、また、都度で <div> を入れているので <br> 不要なのがコレ
2019/06/27(木) 20:38:38.32ID:LMazrfctd
document.write なんて何年ぶりに見たかな。
タイムスリップしてきたのかよ。
2019/06/30(日) 10:29:23.95ID:fZGHIByLa
>>171
> setTimeout(function(i, j){
>  F1(i, stage);
> }, 1000, stage*2, stage);
どう見ても無名関数式が無駄と思うが、無名関数式を使うべき理由があるだろうか
https://jsfiddle.net/gc0f8ev5/

汎用性を上げるならこう
https://jsfiddle.net/cyuLj0qg/
2019/06/30(日) 13:53:46.21ID:THYklFdH0
>>169 までの流れを見ると end 即時表示希望にみえる
end 表示まで1秒かかってません?
2019/06/30(日) 13:59:18.64ID:THYklFdH0
あと const とか使うなら

variableName + ' = ' + i * multiple

`${variableName} = ${i * multiple}`

とか
2019/06/30(日) 14:58:27.84ID:KLBxkGT0a
他人に指摘する前に質問に答えるのが先と思うのだが

>>174
修正した。
https://jsfiddle.net/6gj37qvr/

>>175
Polyfillで吸収不可能なIE11非対応機能は使用していない
2019/06/30(日) 15:02:36.29ID:THYklFdH0
>>176
元質問者のコードから document.write 消しただけだが?
わたしゃ知らんがな
2019/06/30(日) 15:12:50.60ID:1phNYyF+a
>>177
質問者のコードは即時関数で>>169が無名関数式を使用したように読めるが…

あと、他人に指摘はするが、自分に指摘されたら「知らんがな」はあまりにも誠意がない
より良いコードを追求するが故の改善案と認識していたが、あなたには違う目的があるのかもしれないと思い始めてる
Web制作板の「ワッチョイ **8f」と同じ人ならいうだけ無駄かもしれんが
2019/06/30(日) 15:16:59.04ID:Xr7FFEwba
× 質問者のコードは即時関数で>>169が無名関数式を使用したように読めるが…
〇 質問者のコードは即時関数で>>170が無名関数式を使用したように読めるが…
2019/06/30(日) 16:36:21.06ID:THYklFdH0
逆引きすると eaccess
2019/07/01(月) 00:35:59.51ID:EBI1AAR2r
165.82.91.58.in-addr.arpa name = p117165-ipngn4601funabasi.chiba.ocn.ne.jp.

inetnum: 58.88.0.0 - 58.95.255.255
netname: OCN
descr: NTT Communications Corporation
descr: OTEMACHI PLACE WEST TOWER 2-3-1 Otemachi Chiyoda-ku,Tokyo 100-8019 Japan
2019/07/05(金) 18:33:03.43ID:RUF6TsjL0
上から目線だった割にダンマリか
2019/07/13(土) 02:17:04.73ID:P33eZqk80
https://leetcode.com を始めました。
そこで、質問です。

var toLowerCase = function(str) {
const length = str.length
let str_result = ""
for (let i = 0; i < length; i++) {
const char_code = str.charCodeAt(i)
if ((0x41 <= char_code) && (char_code <= 0x5a)) {
str_result += String.fromCharCode(char_code + 0x20)
} else {
str_result += String.fromCharCode(char_code)
}
}
return str_result
}
console.log(toLowerCase("Hello"))
console.log(toLowerCase("here"))
console.log(toLowerCase("LOVELY"))

こんなコードを書くのは少数派でしょうか?

Runtime: 52 ms, faster than 75.91% of JavaScript online submissions for To Lower Case.
Memory Usage: 33.8 MB, less than 39.71% of JavaScript online submissions for To Lower Case.
だそうで、効率は良いっぽいのですが…。
184デフォルトの名無しさん (ワッチョイ d68f-XC/u [153.169.176.66])
垢版 |
2019/07/13(土) 02:23:13.18ID:P33eZqk80
質問age
2019/07/13(土) 13:09:30.00ID:P33eZqk80
+ JavaScript の質問用スレッド vol.141 +
https://mevius.5ch.net/test/read.cgi/hp/1562318008/215

「マルチイクナイ」防止
2019/07/13(土) 13:53:56.27ID:iFENtaMCa
>>183
「少数派」は統計の媒体依存なので、回答不可
質問の意図が全く分からない
主流とか流行とかなら気にする必要は全くない
2019/07/13(土) 16:08:39.17ID:P33eZqk80
アルファベット26文字に対する変換問題のようです

配列なりハッシュテーブルなりを使うのが一般的回答かもなあと思いまして。
どのような別解があるのか、と。
2019/07/13(土) 16:13:41.95ID:GYG1iQvda
>>187
別解はいくらでもある
質問範囲が広すぎる

'ABCdefGHI'.replace(/[A-Z]/g, Function.prototype.call.bind(String.prototype.toLowerCase))
2019/07/13(土) 16:22:58.73ID:GYG1iQvda
>>187
> 配列なりハッシュテーブルなりを使うのが一般的回答かもなあと思いまして。

要件次第でいくらでも変わるコードに「一般解」を求める事が愚策だと思う
「主流」「一番使われる書き方」「現場での書き方」の質問全てにそう思う
2019/07/14(日) 10:50:06.44ID:ZHLRDDy6a
>>187
https://mevius.5ch.net/test/read.cgi/hp/1562318008/229

> 229 215 (ワッチョイ 7e8f-XC/u)2019/07/14(日) 09:32:34.14ID:c8hg/KPq0
> >>223
> プログラム板に別解があるようだが、あれで満足?
>
> うーん
> どこからどう見ても練習問題なのに…

「練習問題」という条件はなかったし、具体的な要件は掲示されていなかった
そして、「練習問題」という要件が何を表すのか全く示されていない
後出しで条件追加するぐらいなら初めから全てを「具体的に」書いてくれ

それから、マルチポストしたなら、全てのマルチポスト先で進捗結果を報告してくれ
https://ja.wikipedia.org/wiki/%E3%83%9E%E3%83%AB%E3%83%81%E3%83%9D%E3%82%B9%E3%83%88#%E5%A4%B1%E7%A4%BC%E3%81%AB%E3%81%AA%E3%82%89%E3%81%AA%E3%81%84%E6%96%B9%E6%B3%95
2019/07/14(日) 11:14:56.21ID:QCCP5GQI0
text に含まれる改行位置で分割して、それぞれの行の文字数を図りたいです。
繰り返しが上手く組めません。宜しくお願いします。
2019/07/14(日) 11:27:30.89ID:ZHLRDDy6a
>>191
「出来上がっているコード」や「繰り返しの何を理解して、どこが理解できないのか」を示していない時点でコード制作依頼にしか読めないが…
'abc\ndefg\nhijkl'.split(/\n/).map(s=>s.length); // [3, 4, 5]
2019/07/14(日) 16:29:44.23ID:QCCP5GQI0
それはすみません

bodyがフィーム送信されたテキストとしまして
var line = body.split("¥n");
var cline =0;
これを繰り返し展開し  length > ○○ で cline++;
したいのですが、javascriptの繰り返しがどうしても理解
できないのです。
2019/07/14(日) 17:08:22.63ID:QCCP5GQI0
全く理解できないけど
for ( var i = 0; i < line.length; i++ ){
if(line[ i ].length > 長さ){
cline++;
}
}

で長さを超えている行数が獲得できました。
結局mapは使えませんでしたが、有り難うございました。
2019/09/11(水) 12:29:38.26ID:MLxC+C0x0
js のfor文はまじでゴミだから使わないほうがいいよ
2019/10/02(水) 19:50:54.77ID:N+fsnVWC0
Acrobatのスタンダード版で、Javascriptを使おうとすると、
この機能はライセンスに含まれていないと表示され、使えません。

実際、プロとスタンダードの比較表を見ても、後者では使えないことになってるのですが、
なぜか、コマンドボタンに書いたJavascriptは使えます。

一体何が違うのでしょうか?
197デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87])
垢版 |
2019/10/13(日) 13:12:43.29ID:KO9wMRnb0
https://mohayonao.hatenadiary.org/entry/20111108/1320756534

ここでやっているようなプログラムを作っても別タブを開いている間は止まります。
同じような経験をしていらっしゃる方いませんか?

workerの部分を別ファイルを使っても、blobを使って単一ファイルにまとめても
同じようになります。

https://qiita.com/mohayonao/items/b4f713bf8ab9de8907f1
ちなみにここのやつをそのままコピーしてやっても、workerありでも
無しでも同じような結果になりました。
198デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87])
垢版 |
2019/10/13(日) 21:59:21.96ID:KO9wMRnb0
197ですが、情報が少なすぎました。
199デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87])
垢版 |
2019/10/13(日) 22:04:01.67ID:KO9wMRnb0
ブラウザはChrome、Operaと試しました。
workerも使えない。上記のカウンターを数えるだけのプログラムですが
別タブに行くとworkerがあろうとなかろうと、タイマーが止まってしまいます。
何かいい方法ないでしょうか。
ちなみに誰か、これらのプログラムを試してみて成功した方いらっしゃいませんか?
というより、プログラムは動くので、別タブに行ってもタイマーが止まるかどうか気になります。
2019/10/13(日) 23:50:22.68ID:vCIvkSJf0
qiitaのやつのBlobBuilderのところをBlobを使うように修正して動かしてみたけど、タブの切り替えでしっかりカウンターがずれて表示されたよ
2019/10/14(月) 00:16:28.97ID:qXl8FtHN0
そりゃ、テトリスなどのゲームをプレイしていても、
別タブへ移動したら、ゲームは止まる。
そして戻ってきたら、止まっていた所から始まる

フォーカスを失うと、アクティブ(フォアグラウンド)プロセスじゃないから、CPU スライスが割り当てられない!
GUI では、アクティブなプロセスは、常に1つだけ

バッググラウンドでも動き続けるには、バッググラウンドプロセスにする。
それか、worker スレッド

この板のこのスレは、web制作管理板が荒らされたときに立てた緊急避難用スレで、今は使われていません!
web制作管理板のJavaScript のスレへ、移動してください!
2019/10/14(月) 01:02:16.33ID:BvwKSjSca
使われていない、は誇大表現
203デフォルトの名無しさん (ワッチョイ 6552-ndj0 [118.243.40.87])
垢版 |
2019/10/14(月) 06:14:41.99ID:sewBjWGo0
>>200-201
ありがとうございます。
条件とかを無視してBlobbuilder() をBlob()に換えただけですが
ずれて表示されませんでした。
worker使ってもタイマーは止まったまま。
web制作管理板の緊急避難スレとのことでそちらに移動しますね。
2019/10/15(火) 19:12:53.82ID:T3rV/Bv4a
Node.jsで普通のJavaScriptライブラリを使いたい場合は
どうすればいいのでしょうか?
2019/10/15(火) 20:26:19.49ID:vw6XmgDra
>>204
ライブラリ自体は大きいのですが使っている関数が一つだけだったので
それをexportする処理をライブラリ末尾に加えることにしました
2019/11/05(火) 20:35:01.78ID:5aM3HiNlM
変数がnullだったら
プログラムを停止させる
ようにするには
どうしたら良いのでしょうか?
2019/11/06(水) 08:15:45.88ID:OMUD4Mtcr
>>206
if arg === null throw new TypeError
2019/11/12(火) 15:38:30.38ID:8eof7ZBb0
ES6の導入後って、プレースホルダーを使わないただの文字列でも
とりあえず全部バッククォートで囲んでしまっていいのでしょうか……?
209デフォルトの名無しさん (スップ Sd7a-Tjez [49.97.100.119])
垢版 |
2019/12/08(日) 09:13:34.78ID:Zz4LoxFtd
forEachのループ順ってインデックスの順番と一致が保証されてますか?
2019/12/08(日) 16:43:16.81ID:I8sMvbYLM
>>209
MDNくらいは見てから質問しようぜ

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
211デフォルトの名無しさん (スップ Sd7a-Tjez [49.97.100.119])
垢版 |
2019/12/09(月) 07:21:26.41ID:OnUQvyFpd
>>210
初期化されてない要素はスキップされるんですね
知りませんでした、有り難う御座います
2019/12/09(月) 17:09:29.40ID:+FpDkG8n0
JavaScript の質問は、web制作管理板の方へ書き込んでください!

この板のこのスレは、web制作管理板のスレが荒らされたときに、
緊急避難用として立てたもので、向こうの方が本当のスレです!
2019/12/19(木) 12:42:06.08ID:/4qn7A36r
ずっと、Web制作板に誘導してる奴がいるが、俺はどちらに書いてくれても構わん
ID出てくれた方が安心感はある
2020/02/15(土) 10:53:01.82ID:TiEPdFSJ0
最近canvas(2d)を勉強している関係で、勉強がてら自分でライブラリを少しずつ作ろうと
思ったのですが、何を描画するにもコンテキストが必要ですよね
汎用的な描画関数を書く場合、必ず引数にコンテキストを与える必要がでてくるのですが
どの描画関数にも同じ引数を常に渡すのはかったるい…かといってグローバル変数に
コンテキストが定義されている前提でライブラリの関数を書きたくない…

といった場合、何かすっきり解決する方法はあるのでしょうか?
ライブラリをクラスにしてプロパティにコンテキストを持たせるくらいですかね
2020/02/17(月) 10:17:26.89ID:Wzb8VqtA0
解決しました
やっぱクラスしかないですね
2020/02/29(土) 06:47:52.40ID:mVNyKwOHd
forループ文で
for(var i=0; i<5; i+=0.1){}
これだとiが5を超える前でループを抜けますが

for(var i=0; i<5; i+=1>>2){}
このようにビットシフトを使うと無限ループになってしまうのは何故ですか?

お願いします
2020/02/29(土) 06:50:31.88ID:mVNyKwOHd
無限ループになってしまうのは何故ですか?

お願いします。
2020/02/29(土) 11:53:15.87ID:mVNyKwOHd
自己解決しました
何度0を足しても0ですよね
ビット演算とか分からん
2020/02/29(土) 12:38:22.32ID:M0mcpz9x0
ビット演算って難しいですよね!!!
だれかビット演算のまとめお願いします!!!
ここで直書きで説明お願いします!!!
220デフォルトの名無しさん (ワッチョイ 8f02-Y96Y [114.16.82.189])
垢版 |
2020/03/01(日) 13:30:18.22ID:SX/qa6HC0
ブラウザ側JavaScriptで
簡単にsync化する方法ありますか?
オブジェクト指向化が難しすぎる。
非同期メソッドをクラス内で使った時に
this(このインスタンス的な意味で)を
参照するのが難しすぎます。
2020/03/01(日) 22:59:36.40ID:NSpMdQYF0
非同期は、文脈(コンテキスト)が異なるから、
this とか、例外もキャッチできないだろ

非同期を同期的に書けるのは、async, await。
ちょっと前は、promise だった

JavaScript の質問は、この板ではなくて、web制作管理板の方へ書き込んでください!
この板のスレは以前、荒らしが出たときに、緊急避難用に立てたものだから
2020/04/15(水) 05:54:30.29ID:+ql6+04R0
windowを新規オープンしてから、SetIntervalで60秒に一回関数を呼んで異なるURLに遷移させているのですが、どうも上手く動きません
Windows7 FireFox 7.5.0 64bit

メイン
winObject = window.open("about:blank", "_blank","");
winObject.location.href = "https://www,google.com/";; ← ここまでは動く

https://blog.hello-world.jp.net/javascript/3822/
こういう記事をみつけたんで、(iOS9じゃないけどだめもとで)インターバルで呼ぶ関数内の記述を
winObject.location.href = url;
から
setTimeout(function() { // 次のイベントループで処理
winObject.location.href = url;
}, 100);
にしてみたところ、chromeでは動くようになったもののFireFoxでは動かず

JavaScriptは初心者なもんで、こっちの記述が悪いのかどうかFireFoxが悪いのか判断できず
どうなんでしょう?
2020/04/15(水) 07:07:58.29ID:OHQRQza90
ユーザインタラクション以外から触って効くんだっけ?
2020/04/15(水) 17:04:32.41ID:RzJA8PqV0
Firefox75以降のバグのような気はするけど同一オリジンでなくなった時点でlocation効かなくなるな
2020/04/16(木) 10:08:39.40ID:s+KHkjW/0
>>224
FireFoxなんですかね
FireFoxのちょっと前のバージョンだと、遷移部分をlocation.url=ではなくて毎回windows.openにしてても新規にウィンドウ開くことなく同じ
ウィンドウで新しいURLを開けてたんですよ。JavaScriptの仕様的にそれがおかしいから直したら、ついでにバグ入れちゃったのかなあ?
2020/05/03(日) 21:36:56.65ID:4npkj+7k0
JavaScriptって関数のネスト地獄だと思うんですが、何かいい解決策ってあるんですか?(*´ω`)

os.cpus().forEach(cpuInfo => {
fs.appendFile(dataPath, `${cpuInfo.model}\n`, () => {
// ここに追加で色々処理を書くと、関数のネストがひどくて後々つらくなるのでは?
});
});

forEachとかappendFileを使わなくて書く方法は知ってるけど、今回はサンプルなのでわざと使ってるYo!
2020/05/03(日) 21:45:02.73ID:zP3ZF/rE0
引数に関数リテラルを書いてネストが深くなるのが嫌なら外で定義すればいい
228デフォルトの名無しさん (ワッチョイ ab61-A5SY [49.253.78.66])
垢版 |
2020/05/04(月) 23:00:12.61ID:CBUb3t9r0
javascriptでandroidアプリ作れるって聞いたんだけど
仕組みはどうなってんの?
ブラウザでキャッシュにプログラム全部落として実行ってこと?
2020/05/04(月) 23:04:22.47ID:8w+RiBVnr
>>228
javascript android 仕組みでぐぐれば出てくるけど、どうなってんの?
なんにも調べてないの?
230デフォルトの名無しさん (ワッチョイ ab61-A5SY [49.253.78.66])
垢版 |
2020/05/04(月) 23:24:39.48ID:CBUb3t9r0
>>229
そんなことを書くためだけにレスしたの?アホなの?
2020/05/04(月) 23:51:06.40ID:Y30cj42h0
>>230
君がアホということは皆分かってるから、そう喚くなよ
2020/05/05(火) 02:27:53.37ID:rwJ86+M00
この板のJavaScript のスレは、荒らし対策で緊急避難用に作られたもの。
web 制作管理板のスレへ書き込んだ方がよい

こちらには、荒らししかいない

荒らしは必ず、2回書き込む。
自分のレスに、リンクを付けて「そうだよな」みたいに自演する

多くの人が言ってるように見せかける。
午前、3時とかでも、同時に2つのレスを書くw
2020/05/05(火) 10:47:47.11ID:Y/up7PlTr
>>232
独自ルールで自演認定乙
お前が>>228の可能性も否定出来ないが
2020/05/08(金) 08:57:30.14ID:dckQgcH50
もう一個のスレはガイジがレスバトルしてて答えは返ってこないしこのスレは自治ガイジが暴れてるしこんなとこで質問しない方がいいが
2020/06/03(水) 19:07:48.44ID:jt2kVIBa0
javascriptで、1秒毎にGPSの位置情報を表示したいのですが、毎回、アクセス権確認が出てしまいます。
アクセス許可の確認ボックスが表示されるのを、最初の一回だけに出来ないでしょうか?

var timer;
timer = setInterval(test,1000);

function test() {
 navigator.geolocation.getCurrentPosition(test2);
}
function test2(position) {
 var geo_text = "緯度:" + position.coords.latitude + "\n";
 geo_text += "経度:" + position.coords.longitude + "\n";
 var date = new Date(position.timestamp);
 geo_text += "取得時刻:" + date.toLocaleString() + "\n";
 var a = document.getElementById("AAA");
 a.innerHTML = geo_text;
}
236235 (ワッチョイ d361-INBt [218.231.250.166])
垢版 |
2020/06/03(水) 19:40:21.72ID:jt2kVIBa0
watchPositionで
自己解決しました


バックグラウンド等々でも動作を継続させるのはどうしたら良いのでしょうか?
2020/06/10(水) 03:27:21.19ID:nXyeYMB9d
正規表現の質問です

2020/6/10
2020-6-10
2020.6.10

これをstringオブジェクトのsplitメソッドを使い日付の区切り部分で、"/"、"-"、"."のいずれの文字でも分割できるように

var reg=/\/|\-|\./gi;
console.log(2020/6/10.split(reg));

として
length(3) ["2020” , “6” , “20”]
期待通りの結果が出たのですが

var reg=/\/|\-|\./gi;←この部分を
var reg=/(\/|\-|\.)/gi;このようにグループ化したところ

length(5) ["2020” , “/” , “6” , “/“ , “20”]
上と違う結果になってしまったのですが、どういう理屈でこういう結果になったのか教えてくださいm(__)m

正規表現の
a|b|cはaかbかcのいずれかで、[a-c]これと同じ意味ですよね?
2020/06/10(水) 04:08:41.09ID:+QBvSnI00
>>237
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/split
separator が、キャプチャする括弧を含む正規表現だった場合、 separator が一致するごとに、キャプチャする括弧の結果が (未定義の結果であった場合を含め) 出力配列に追加されます。

グループ化だけしたいなら(?:〜〜)で囲め
2020/06/10(水) 05:49:33.23ID:nXyeYMB9d
>>238
ありがとうございます。

括弧を含んだ正規表現の場合〜と解説してる文献があるんですね^_^;
こういうの自分で探せないわ…

何故そうなるのかはほとんど正規表現の知識がないので分かりませんが、とりあえず括弧で括った場合にはそういう挙動になるということは分かりました。

ありがとうございます
240デフォルトの名無しさん (ワッチョイ 6fc7-Z00E [111.216.204.69])
垢版 |
2020/06/15(月) 20:45:26.99ID:1F3a2yyn0
https://github.com/mdn/webextensions-examples/tree/master/borderify

githubでダウンロードするにはどうしたらいいんでしょうか
ダウンロードボタンがないです
2020/06/15(月) 21:10:05.21ID:JS6xK7rfH
マルチポストはやめましょう
242デフォルトの名無しさん (ワッチョイ 6fc7-Z00E [111.216.204.69])
垢版 |
2020/06/15(月) 21:13:50.22ID:1F3a2yyn0
スレを間違えただけです
2020/06/15(月) 21:41:15.07ID:7MR1R7860
>>242
指摘されるまで質問を撤回しなかった理由は?
2020/06/15(月) 23:53:35.57ID:6c4s/wK/0
JavaScript の質問は、web制作管理板の方へ書き込んでください!

この板のスレは、荒らしが出た時に、緊急避難用として立てられたもので、現在は使われていない!
245デフォルトの名無しさん (ラクッペペ MM96-+D7B [133.106.90.78])
垢版 |
2020/07/05(日) 23:47:37.29ID:S84HRZFZM
javascript初心者で右も左もよくわからないんだけどconsole.log();ってみなさんchromeなら検証からやって
2020/07/06(月) 05:50:27.12ID:JmzGvw7e0
>>245
2行目がイミフなんだが、
DevelopperToolsを閉じてみなさんスルーしてやって
247デフォルトの名無しさん (ワッチョイ a56a-+D7B [42.125.49.111])
垢版 |
2020/07/06(月) 14:11:59.36ID:YRhjpfSA0
>>246
やっていますか? でした
2020/07/06(月) 14:50:26.97ID:L/pk2yTgr
>>247
それでも、エスパー案件

「右クリックメニューの[検証]からコンソールパネルを開いてますか?」

と質問してるのか?
---
ショートカットキーを覚えろ
https://developers.google.com/web/tools/chrome-devtools/shortcuts

そして、正しい日本語で質問することも覚えろ
249デフォルトの名無しさん (ラクッペペ MM96-+D7B [133.106.82.76])
垢版 |
2020/07/06(月) 15:11:39.18ID:AsDEr6ShM
>>248
そうです
理解があいまいで正しく伝達できませんでした
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。