X



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

■ このスレッドは過去ログ倉庫に格納されています
0001Name_Not_Found
垢版 |
2014/09/13(土) 19:11:44.98ID:???
JavaScript に関する何でも質問スレです。
お気軽にどうぞ。
0799Name_Not_Found
垢版 |
2021/08/28(土) 21:33:12.98ID:???
Ruby など、たいていの言語に、複合代入演算子がある
0800Name_Not_Found
垢版 |
2021/08/28(土) 23:32:57.67ID:???
ありがたいスレです(>_<)
0802Name_Not_Found
垢版 |
2021/09/03(金) 21:02:01.45ID:???
ここでの質問なのかわからないですが
アナリティクスなどで、訪問者のiPhoneのバージョンがわかるようにしたり、集計ってできますか?
例えばiPhone12が○○アクセス、全体シェア○○%のように
0804Name_Not_Found
垢版 |
2021/09/03(金) 21:44:48.13ID:???
const $el = document.getElementById('hoge');
let func = () => {
console.log($el);
}
setInterval('func()',1000);

としたところ、$elはnullになってしまいます。

let func = () => {
const $el = document.getElementById('hoge');
console.log($el);
}
setInterval('func()',1000);

とすれば$elには値が入りますが、setIntervalを実行する度にconstをセットするのが
どうもスマートでないように思います

JSの作法的に正しくて、スマートに書こうと思ったら
どう改善したら良いでしょうか?
0806Name_Not_Found
垢版 |
2021/09/03(金) 21:56:16.09ID:???
>>804
setIntervalの気持ち悪い書き方を直すだけ
setInterval(func,1000);
0807Name_Not_Found
垢版 |
2021/09/03(金) 22:07:25.41ID:???
スマートな書き方を聞くやつはスマートじゃないの法則
0809Name_Not_Found
垢版 |
2021/09/07(火) 05:43:43.55ID:???
Firefox のコンソールで 0/-2 など 0を-xで割ると -0と出るのですが
プログラミングでは一般的なのでしょうか
0と出てきて欲しいんですが
0811Name_Not_Found
垢版 |
2021/09/07(火) 07:50:22.49ID:???
>>809
>プログラミングでは一般的なのでしょうか

そこそこ一般的
0812Name_Not_Found
垢版 |
2021/09/07(火) 09:51:01.19ID:???
ありがとうございます。
よく考えれば今回は-0でも問題ありませんでしたのでそのまま処理しました。
0814Name_Not_Found
垢版 |
2021/09/13(月) 12:36:49.23ID:???
<style>
#test{
filter:sepia(50%);
}
</style>

<ul id="test">
<li><img src="./img1.png"></li>
<li><img src="./img2.png"></li>
</ul>
<input type="button" value="クリック" オンクリック="aaa()">

<スクリプト>
function aaa(){
var elm_list = document.querySelectorAll("#test li");
elm.list[1].style.filter = "sepia(0%)";
elm_list[1].style.border="Solid 3px #0000ff";
}
</スクリプト>
セピアを0にして画像を元の色にしたいんだけど色が変わりません
borderの方は線が表示されたのでセレクタは正しいと思うけど
どうしてでしょうか?どうすれば元の色にできますか?
0815Name_Not_Found
垢版 |
2021/09/13(月) 13:31:13.85ID:???
elm.list になってるからでは
0817Name_Not_Found
垢版 |
2021/09/13(月) 14:28:45.90ID:???
ulに対してsepia(50%)設定してるのにliを0%にしたところで変わらんよ
見た目は子孫に影響するけど、プロパティ値は継承しないのでdisplayやopacityなんかと一緒で親の効果を上書きできるわけではないよ
#test li {
filter: sepia(50%);
}
0818Name_Not_Found
垢版 |
2021/09/13(月) 18:38:27.91ID:???
スコープみたいなものですか?
0820Name_Not_Found
垢版 |
2021/09/14(火) 13:43:26.00ID:???
特定の要素から特定のイベントのイベントリスナーを削除することは可能でしょうか?
関数への参照を保持していない状態です。

具体的にはwindow.addEventListener("storage",function(){〜})の形で登録されているようなものです。
ピンポイントで上記だけ削除するのが難しいようであれば、window要素に紐づくstorageイベント全てを一括削除という形でも問題ないです。
0821Name_Not_Found
垢版 |
2021/09/14(火) 19:34:00.52ID:???
chromeはできるかわからないけど
firefoxならublock originで
yahoo.co.jp##+js(aeld, storage,/functionの中身を正規表現で/)
でいけそうだけど
0822Name_Not_Found
垢版 |
2021/09/14(火) 20:32:24.79ID:???
>>820
要素のイベントを全て削除
elm.replaceWith(elm.cloneNode(true))
windowはアキラメロン
0823Name_Not_Found
垢版 |
2021/09/14(火) 22:56:39.52ID:???
イベント登録前に割り込めるならEventTarget.prototype.addEventListenerあたりをフックするとか
0824Name_Not_Found
垢版 |
2021/09/15(水) 11:19:42.58ID:???
addEventListenerをフックするのが一番現実的なんですかね?

しかし、要素に紐づくイベントリスナーや、管理している全てのイベントリスナーを出力するみたいな関数は存在しないんですね……
ありそうなものだけど、というか無いならどこでどうやって管理してるんだろう……
0826Name_Not_Found
垢版 |
2021/09/15(水) 12:45:18.50ID:???
>>825
自分で書く部分ならもちろんそうするんですが、Chromeの拡張で特定のページの邪魔な動作をシャットアウトしたいんですよね。
0827Name_Not_Found
垢版 |
2021/09/15(水) 16:46:22.85ID:???
X軸方向のスクロールを常に禁止にし、常にスクロールをゼロの位置にする事って可能でしょうか?
cssでスクロールバーを出さない方法はありますが、要素が自由に動いてしまうのでスクロールしてしまう事が多々あります
0828Name_Not_Found
垢版 |
2021/09/15(水) 17:55:31.30ID:???
>>822 に一票
クローンして差し替えることによりelmとその子孫のイベントリスナーが消え、その他の属性は残る
0829Name_Not_Found
垢版 |
2021/09/15(水) 19:03:27.68ID:???
スクレイピングすると地獄へ落ちるって本当ですか?
0830Name_Not_Found
垢版 |
2021/09/15(水) 19:21:25.96ID:???
>>826
キャプチャリングフェーズでstopPropagation
0831Name_Not_Found
垢版 |
2021/09/16(木) 12:37:19.77ID:???
#test li{
background:#0000ff;
}
#test li:hover{
background:#00ff00;
}
というcssがある場合hoverのbackgroundを取得したいんだけど
querySelectorAll("#test li:hover")とやっても取得できませんでした。
どうやればいいんですか?
0832Name_Not_Found
垢版 |
2021/09/16(木) 14:04:33.43ID:???
取得しようとした部分を書いて
0833Name_Not_Found
垢版 |
2021/09/16(木) 14:47:41.06ID:???
:hoverはquerySelectorAllで取得できません
ちなみにgetComputedStyle(element, ":hover")もできない
0834Name_Not_Found
垢版 |
2021/09/16(木) 15:15:39.66ID:???
どうやったらできるかを考えるのが、
あなたたちの仕事です
0835Name_Not_Found
垢版 |
2021/09/16(木) 15:27:53.95ID:???
hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
いまカーソルがのってるかを見たいなら
mouseoverイベントか対象にtransition入れておいてtransitionのイベントを見ればいいんじゃないかな
0836Name_Not_Found
垢版 |
2021/09/16(木) 15:47:02.52ID:???
仕事と言われると対価が欲しくなる
0837Name_Not_Found
垢版 |
2021/09/16(木) 18:11:46.09ID:???
>>832
<ul id="test">
<li>aaa</li>
<li>bbb</li>
</ul>
var element_list = document.querySelectorAll("#test li:hover");
var st = getComputedStyle(element_list[0]);
var val = st.getPropertyValue("background");
alert(val);

こうやっても取得できなかった
他に方法はないんですかね
0839Name_Not_Found
垢版 |
2021/09/16(木) 18:36:24.59ID:???
クエリーセレクターにホバーは入れられないって言ってるだろ
0841Name_Not_Found
垢版 |
2021/09/16(木) 21:45:16.33ID:???
>>835
それは
var element = document.getElementById("test");
element.styleということですか?
0842Name_Not_Found
垢版 |
2021/09/17(金) 06:20:01.48ID:???
jQuery には、hover 時のイベントがあるけど
0843Name_Not_Found
垢版 |
2021/09/17(金) 09:12:27.75ID:???
>>841
>>835は意味不明
style要素といってるから、まずはstyle要素でスタイルを定義するところからなんじゃない?
0845Name_Not_Found
垢版 |
2021/09/17(金) 12:48:54.07ID:???
>>844
style要素だよな?
link要素で外部CSS定義していたら、style要素に書き換える必要がある
何のためにそんなことする?
内容からCSS記述をパースさせるのか?
0846Name_Not_Found
垢版 |
2021/09/17(金) 17:57:46.99ID:???
>>845
element.onmouseover = function(){
element.style.background = cssのhoverから取得したbackground;
}
というふうにしたかった
0847Name_Not_Found
垢版 |
2021/09/17(金) 19:02:09.68ID:???
>>846
それは「styleプロパティ」という
>>835は「styleエレメント」といっていたから意味不明だった
そして、styleプロパティでは>>831定義のCSSを取得出来ない
0848Name_Not_Found
垢版 |
2021/09/17(金) 19:23:45.68ID:???
>>Array.from(document.styleSheets).map(e=>Array.from(e.rules).map(e=>e.cssText).join()).join().includes(":hover")
←true
0850Name_Not_Found
垢版 |
2021/09/17(金) 19:44:13.42ID:???
取得できないって人がいたので
0851Name_Not_Found
垢版 |
2021/09/18(土) 00:07:10.94ID:???
F12 開発者ツールのコンソールで、実行した

style_sheets = document.styleSheets

css_rules = style_sheets[0].rules
css_rules[1].cssText

出力
'#test li:hover { background: rgb(0, 255, 0); }'
0853Name_Not_Found
垢版 |
2021/09/18(土) 00:49:33.72ID:???
そりゃdocument.styleSheetsで取得出来ないとは誰もいってないし
0854Name_Not_Found
垢版 |
2021/09/18(土) 03:30:32.64ID:???
見苦しい言い訳は不要
負けを認めるか、潔く退場するかの2択
0855Name_Not_Found
垢版 |
2021/09/18(土) 03:38:49.61ID:???
スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります
0856Name_Not_Found
垢版 |
2021/09/18(土) 03:42:43.76ID:???
リスクも回避方法もない
過去には問い合わせで許可を得た上で図書館のサーバーにスクレイピングをした人が捕まってる
0857Name_Not_Found
垢版 |
2021/09/18(土) 08:34:11.72ID:???
>>851
#test1 li:hover,#test2 li:hover{
background:#0000ff;
}
というような書き方の場合test1 li:hoverを取得できないやろ
0858Name_Not_Found
垢版 |
2021/09/18(土) 12:10:18.16ID:???
>>854
俺は>>838>>843,845,847だが、何も間違ったことはいってないつもり
どの辺が言い訳なのか教えてくれ
0859858
垢版 |
2021/09/18(土) 12:13:53.88ID:???
俺からすると>>844,846が言い訳
「styleエレメントを見ればいい」に突っ込み入れてるのに、頓珍漢な返答で困った
0860Name_Not_Found
垢版 |
2021/09/18(土) 13:44:08.68ID:???
結局言い回しに数レスかけて難癖付けたってだけの話ね
0861Name_Not_Found
垢版 |
2021/09/18(土) 14:07:39.14ID:???
結局、正答は>>838>>848だけ
他の回答はノイズでしかないでしょ
0862858
垢版 |
2021/09/18(土) 14:15:06.90ID:???
>>860
言い回しだけでなく、ミスリードだと思うんだが、お前に分かるなら教えてくれ

>>835
> hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな

「styleエレメント」の言い回しを修正したとして、hoverのプロパティをどうやって取得するんだ?
0864Name_Not_Found
垢版 |
2021/09/18(土) 14:29:33.65ID:???
>>862
また言い回しだね
プロパティ(の内容)ってなんで補完できないかな
0865Name_Not_Found
垢版 |
2021/09/18(土) 14:39:55.24ID:???
荒らしだからかまうのやめよう
0866858
垢版 |
2021/09/18(土) 17:10:43.28ID:???
>>864
いやだから、それでどうやって実装する?
0868Name_Not_Found
垢版 |
2021/09/18(土) 17:34:19.01ID:???
言い回しが悪ければ実装手段も示せない>>835の負けだな
言い訳が見苦しい
0869Name_Not_Found
垢版 |
2021/09/18(土) 18:17:58.16ID:???
頭のおかしい人に以下のようなことを言われました

>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない

具体的な書籍名を教えてください


>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない

どこでそんなルールが決まっているのでしょうか?
0873Name_Not_Found
垢版 |
2021/09/18(土) 19:25:19.77ID:???
関係ないと思ってるのは君でしょ
0875Name_Not_Found
垢版 |
2021/09/18(土) 19:40:47.74ID:???
横からだが、>>835>>848になるとは俺も読めんわ
どう解釈したらこのコードになるのかさっぱりわからん
0876Name_Not_Found
垢版 |
2021/09/18(土) 19:48:15.84ID:???
分かるが、こんな難解コード書くならループ書くわ

スタイルシートを回って、ルール回って、全部をテキストとして結合して、:hover が含まれてるか判定
0877Name_Not_Found
垢版 |
2021/09/18(土) 19:58:03.09ID:???
翻訳してみた

hoverのプロパティ自体を見たければstyleエレメントを見ればいいんじゃないかな
 ↓
:hover疑似クラスを見たければ、document.styleSheetsを見ればいいんじゃないかな

間違ってる部分は他の正しそうな単語に置換していけば、いずれは正解に辿り着く
質問者は変換作業を頑張れ
0878Name_Not_Found
垢版 |
2021/09/18(土) 20:10:37.55ID:???
styleエレメントをdocument.styleSheetsと読みかえるところがエスパー力高いな
0879Name_Not_Found
垢版 |
2021/09/18(土) 20:15:44.91ID:???
それって CSSの優先順位や詳細度に継承おまけにimportantやなんか考慮するととてつもなくややこしくなるんじゃ
0880Name_Not_Found
垢版 |
2021/09/18(土) 20:20:37.25ID:???
>>878
コードから文章を読み取るのは出来そうだが、コードがない状態で文章からコードを作るのはまず無理だろうな
0881Name_Not_Found
垢版 |
2021/09/18(土) 20:43:05.75ID:???
>>878
hoverのプロパティ自体とあるから中身をa.style以外からとろうとすれば
document.styleSheets[x]ぐらいしかとるとこなさそうだけど
0882Name_Not_Found
垢版 |
2021/09/18(土) 21:10:19.52ID:???
>>881
正解を知ってる俺達が文章を改竄するのは難しくない
だが、もしも俺が正解を知らない質問者なら、document.styleSheetsには辿りつけない
0883Name_Not_Found
垢版 |
2021/09/18(土) 21:40:40.43ID:???
a.style以外からとるんだなとわかればぐぐればすぐわかるわな
0884Name_Not_Found
垢版 |
2021/09/18(土) 21:43:50.66ID:???
みんなすげーな
エスパー力5の俺にはJavaScriptは無理だと思った
0885Name_Not_Found
垢版 |
2021/09/18(土) 21:47:21.87ID:???
質問者はstyleの定義まで知ってるのだから
たどりつけないことはないと思うけどなあ
0887Name_Not_Found
垢版 |
2021/09/18(土) 22:01:45.40ID:???
ググって解決する奴なら質問しないだろ
0888Name_Not_Found
垢版 |
2021/09/18(土) 22:06:32.59ID:???
0からググるのと
なにか入ってからググるのでは大違いだからな
0889Name_Not_Found
垢版 |
2021/09/18(土) 22:28:59.42ID:???
誤った単語でググらされる質問者は大変だな
0890Name_Not_Found
垢版 |
2021/09/19(日) 07:36:15.87ID:???
>>820なんですが、>>830の方法が今回やりたいことに一番適合してていい感じに止めたい処理止めれました
回答頂けた方々ありがとうございます
0892Name_Not_Found
垢版 |
2021/09/21(火) 10:40:12.17ID:dHsYsAG0
有名企業などのサイトのsourceを見てみると、大概見た事ない独自の?jsファイルが山盛りなんですけど、
あれってどういう事ですか?three.jsだとかそういうの直接使わないで組み替えたりするんですか?
あとなんであんなに山盛りscriptがあるのか、、読んでも全く勉強にならないしどう勉強したらいいかもわあからない、、
0893Name_Not_Found
垢版 |
2021/09/21(火) 12:47:33.17ID:???
>>892
そういうのを自分で調べないから
いつまでたっても理解できないんだよ
0894Name_Not_Found
垢版 |
2021/09/21(火) 13:04:03.49ID:???
一個一個ublockでブロックしていったら何をしているかわかるんじゃないの?
0895Name_Not_Found
垢版 |
2021/09/21(火) 14:50:15.10ID:???
具体例1個出してみりゃいいじゃん
0896Name_Not_Found
垢版 |
2021/09/21(火) 20:17:24.51ID:???
>>822
横からですが、子要素のイベントが残ってたら便利そうと思って試してみたらら
全部外されてしまいましたw
自作関数なら参照リレー渡しが無難ですね
0897Name_Not_Found
垢版 |
2021/09/24(金) 12:59:36.08ID:???
数学座標を画面座標に変換する関数はありますか?
あれば何を使えばいいんですか?
画面座標は左上が(0.0)で下方向に行くとがy座標が増加
数学座標は中心が(0,0)で下に行くとy座標がマイナスなので
これを画面座標に変換しないとちゃんと表示できないので
0898Name_Not_Found
垢版 |
2021/09/24(金) 15:10:19.06ID:???
足し算引き算掛け算の問題やな
■ このスレッドは過去ログ倉庫に格納されています