X



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

0001Name_Not_Found
垢版 |
2015/08/08(土) 12:43:43.71ID:???
JavaScript を自ら学ぶ人のための質問スレッドです。
>>2-4のテンプレを読んだ上で質問してください。

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

・バックグラウンドで取得し直してそれをストレージに格納している
background.tsの123行目あたり
type.d.tsのWorksData型にtags配列あり

・検索画面にそれを表示している
search_page.tsの97行目あたり

実際に拡張機能入れて動かしたわけでもないしソース追っただけだから適当だけど
0344Name_Not_Found
垢版 |
2023/01/09(月) 21:27:33.60ID:???
>>343
ご教授感謝です、参考にさせて頂きます
0345Name_Not_Found
垢版 |
2023/01/10(火) 01:47:07.95ID:???
ちょっとしたデータを取得するのに、

「イラストのURLに飛んで、そこからリンクを取得してくる」みたいな、
副問い合わせをやっていたら大変
0346Name_Not_Found
垢版 |
2023/01/11(水) 00:32:53.42ID:dBdRyffW
>>345
ですよね…なんかちょっと変かな?という気はしていました、ありがとうございます

「API」とか「ストレージ」「トークン」「クッキー」みたいな通信の部分がからっきしなもので、色々調べながらやらせて頂きます
0347340
垢版 |
2023/01/11(水) 04:43:41.70ID:???
漏れらだって、Ruby on Rails, Linux, Docker, AWS Solution Architect しか分からない

>>340
に書いたように、誰かが作った、退屈な雛形を自動生成して作っている

CSRF, Strong Parameter, pjax, place holder、データベースの設計など、
全部Railsで勉強しているだけ
0348Name_Not_Found
垢版 |
2023/01/11(水) 11:01:19.44ID:???
>>346
察するにその拡張機能を調査分析するのに必要なスキルがまだ足りてないから
もう少し基礎知識を身につけてから挑んだ方がいいと思うよ
分不相応な挑戦は時間のムダにしかならない

あとRailsはNGワードに入れといた方がいい
0349Name_Not_Found
垢版 |
2023/02/21(火) 11:34:13.09ID:???
cssファイルのセレクタに、別のjsonファイルの値をインポートして使える方法とかありませんか?

【jsonファイルの値】{color:green;}

みたいな。
0350Name_Not_Found
垢版 |
2023/02/22(水) 02:42:08.74ID:???
sassファイルに、jsonファイルの読み込みとかってできたりする?
0351Name_Not_Found
垢版 |
2023/03/24(金) 07:50:31.37ID:ornKmOPA
コードを1人で書いてます。他人が見ることは100%ありません。

(a) function hoge(){ }
(b) var hoge = function(){ };

の区別や管理はどうしてますか?

・返り値のないものはa、あるものはb
・宣言のみは冒頭、実行の伴うものは後述

というルールで書いていましたが、
1万行近くなって見通しよくするために大まかな機能ごとにまとめるようになり
bが順序的に後述になる箇所が出てきました。
”機能ごと”は今後順序変更する可能性があります。

関数リテラルのメリットがいまいちわかりません。どんなメリットがあるのでしょうか?
また返り値有無関係なく全てaにして不便はありますか?
0352Name_Not_Found
垢版 |
2023/03/24(金) 18:33:56.71ID:???
>>351
不便はありません
動的に変数の中身の関数を入れ替えたい場合だけ(b)で
0353351
垢版 |
2023/03/24(金) 22:38:34.30ID:???
>>352
動的に全く違う関数に入れ替えられるのですね、なるほどです。
この件では各関数や引数の目的が明確固定ばかりなのでその場合はなさそうです。
極一部名前付き引数を使用していますが、関数内処理はほぼ一定で、その程度です。

ありがとう。
0354Name_Not_Found
垢版 |
2023/03/25(土) 00:37:00.35ID:???
このJavascriptでdivをタブで切り替え表示のサンプルで
Works、Contactタブにimg srcで画像を埋め込んでた場合
Works、Contactタブを選んだ時にだけ画像や内容を読み込む動作ってどうやるの

ttps://posipan.com/js-tab/
0355Name_Not_Found
垢版 |
2023/03/25(土) 19:04:37.36ID:???
Lazyloadとか使うといいかと
0357Name_Not_Found
垢版 |
2023/03/27(月) 13:58:05.40ID:???
そんな自分のウンチク言ってないで質問に答えてやればいいのに
0358Name_Not_Found
垢版 |
2023/03/27(月) 20:31:02.45ID:???
なんで上から目線で「質問に答えてやればいいのに」といえるのだろう?
0359Name_Not_Found
垢版 |
2023/03/28(火) 01:36:21.08ID:???
なんか癪に障っただけだろう
0361Name_Not_Found
垢版 |
2023/03/28(火) 17:07:37.33ID:???
>>360
それは上から目線である理由になってないね
>>358が聞きたいのはそっちだろう
0362Name_Not_Found
垢版 |
2023/03/28(火) 19:26:10.85ID:???
上から目線を感じてしまうのはあなたが小さい人だからよ
0364Name_Not_Found
垢版 |
2023/03/28(火) 21:15:19.17ID:???
356はケチつけられても仕方ない
回答もせず、どうでもいい知識自慢、「このへんを参照のこと」なんて上から目線、自己主張
362の通り気にしすぎ
0365Name_Not_Found
垢版 |
2023/03/28(火) 21:23:34.93ID:???
争いは同じレベルでしか発生しない
0366Name_Not_Found
垢版 |
2023/03/28(火) 21:47:39.32ID:???
>>364が気にし過ぎでフフッてなる
なるほど同レベルだね
0367Name_Not_Found
垢版 |
2023/03/28(火) 22:28:03.56ID:???
以前はスコープの問題でfunction expression派のライブラリが数多くあった
strict modeができてからはfunction declaration派が増えたように思う
0371Name_Not_Found
垢版 |
2023/03/29(水) 17:51:02.44ID:???
MathJaxってVer3になって、レンダリングされた文字列を範囲選択出来なくなった?
0372Name_Not_Found
垢版 |
2023/03/31(金) 12:07:44.93ID:???
こんにちは。
どなたか教えていただけませんか。

下記のようなコードを書いたのですが、
div部分が1つなら問題ないのですが、複数になると2つ目以降は反映されません。
そこでループにしないといけないのかな?と思うのですが知識が未熟でどうすればいいのか全くわかりません。
どなたかどうすればいいか教えて頂けませんでしょうか。
よろしくお願いします。

// HTML
<div class="fullimg"><img src="./img1.jpg" height="1000" width="1000"></div>
<div class="fullimg"><img src="./img2.jpg" height="500" width="500"></div>

// script
let imgd = document.querySelector("img");
let result = imgd.getAttribute("src");

let hresult = imgd.getAttribute("height");
let wresult = imgd.getAttribute("width");

const div = document.getElementsByClassName("fullimg");
div[0].innerHTML = '<label for="' + result + '"><img src="' + result + '" height="' + hresult + '" width="' + wresult + '"></label>';
0373Name_Not_Found
垢版 |
2023/03/31(金) 13:50:56.44ID:???
ループ以前にlabelのfor属性は関連するフォーム要素のIDを指定するものなので生成しようとしてるhtml自体に問題があるよ
0374Name_Not_Found
垢版 |
2023/03/31(金) 14:25:37.98ID:???
では再度サンプルコードを書いておきます。

// HTML
<div class="fullimg"><img src="./img1.jpg" height="1000" width="1000"></div>
<div class="fullimg"><img src="./img2.jpg" height="500" width="500"></div>

// script
let imgd = document.querySelector("img");
let result = imgd.getAttribute("src");

let hresult = imgd.getAttribute("height");
let wresult = imgd.getAttribute("width");

const div = document.getElementsByClassName("fullimg");
div[0].innerHTML = '<img src="' + result + '" height="' + hresult + '" width="' + wresult '">';

こちらでどうぞよろしくお願いします。
0375Name_Not_Found
垢版 |
2023/03/31(金) 17:01:16.18ID:???
>>372
せめてループに挑戦してるけどうまく動かないから助けてってとこまではたどり着いてほしい気がするなぁ
初心者向けのループのレクチャーなんていくらでも見つかるわけだし
0376Name_Not_Found
垢版 |
2023/03/31(金) 22:42:19.54ID:???
>>375
どこかから拾ったサンプルコードの修正依頼で自分は全く知識がないのだろう
0377Name_Not_Found
垢版 |
2023/04/01(土) 12:28:09.62ID:???
これで音信不通になるようではな
諦めたか他所へマルチしに行ったか
0378Name_Not_Found
垢版 |
2023/04/01(土) 14:29:48.39ID:???
これは、取得した値をそのまま設定しているだけだから、何も変わらない

jQuery なら、

// fullimg クラスの付いたdiv の、直下のimg
$( 'div.fullimg > img' ).each( function ( index, elem ) {

jQ_this = $( this )
const src = jQ_this.attr( 'src' ) // 取得
const height = jQ_this.attr( 'height' )
const width = jQ_this.attr( 'width' )

console.log( `${ index }: ${ src }, h: ${ height }, w: ${ width }` )

jQ_this.attr( 'src', src ) // 設定
jQ_this.attr( 'height', height )
jQ_this.attr( 'width', width )

} )

ログ出力
0: ./img1.jpg, h: 1000, w: 1000
1: ./img2.jpg, h: 500, w: 500
0379Name_Not_Found
垢版 |
2023/04/01(土) 15:06:47.33ID:???
jQuery信者が喜ぶネタなんだな
0380Name_Not_Found
垢版 |
2023/04/03(月) 20:28:44.17ID:???
【環境】VS Code
バージョン: 1.77.0
Electron: 19.1.11
Chromium: 102.0.5005.196
Node.js: 16.14.2
V8: 10.2.154.26-electron.0
OS: Linux x64 5.4.0-42-generic

【何をしたのか】イベントリスナー内でevent.target.valueを参照した。
【エラーメッセージ】プロパティ 'value' は型 'EventTarget' に存在しません。ts(2339)
【サンプルコード】
(() => {
"use strict";
const fruit = document.querySelector('select');
if (null === fruit) { return; }
fruit.addEventListener('change', (event) => {
if (null === event.target) { return; }
console.log(event.target.value);
});
})();

fruit === event.targetを実行するとtrueが返ったので、event.target.valueをfruit.valueに書き換えたところエラーが消えた。
イベントを扱うサンプルコードでは大抵event.target.valueが利用されているが、HTMLSelectElement.valueで置換した場合に何か落とし穴はありますか。
0381Name_Not_Found
垢版 |
2023/04/03(月) 21:47:26.64ID:???
>>380
エラーが消えたからヨシ!は好ましくない
まずはts(2339)で検索してみよう
0382>>380
垢版 |
2023/04/03(月) 22:22:25.06ID:???
>>381
エディタ上でts(2339)が出ていてもブラウザ上での実行は問題なくできます。

キャストするとts(2339)が消えますが、「型アサーション式は TypeScript ファイルでのみ使用できます。ts(8016)」が発生します。
ブラウザで実行すると、「Uncaught SyntaxError: Unexpected identifier 'as' (at hoge.html:24:35)」が発生します。(TypeScriptの構文なので当然ですが……)

fruit === event.target;はtrueなので置き換えたのですが、トラップや問題はありますか。
(エディタ上のts(2339)も消えるし実行もできるので、落とし穴がなければこれで行きたいな、と)
0383Name_Not_Found
垢版 |
2023/04/03(月) 22:36:04.36ID:???
>>382
そもそもTypeScriptを書こうとしてるわけじゃないのになんでtsエラーが出てるの?ってこと
vscode右下の言語モードがTypeScriptになってるんじゃないの?
0384Name_Not_Found
垢版 |
2023/04/03(月) 23:01:10.11ID:???
>>383
なってないです。拡張機能も無効です。
i.imgur.com/TE6gwcY.jpg
0386Name_Not_Found
垢版 |
2023/04/03(月) 23:39:06.45ID:???
>>384
わかった、vscodeの設定に↓があるんじゃない?
"js/ts.implicitProjectConfig.checkJs": true
これ追加したらうちでもJSでエラー出た
0387>>380
垢版 |
2023/04/03(月) 23:48:50.00ID:???
>>385 >>380
原因が判明しました。"js/ts.implicitProjectConfig.checkJs"がtrueでした。
型のチェックはしたいので、event.target.valueの上に@ts-ignoreを書いて解決します。
ありがとうございました。
0388>>380
垢版 |
2023/04/03(月) 23:51:00.10ID:???
>>386
まさにそうでした。ありがとうございました。
0389Name_Not_Found
垢版 |
2023/04/04(火) 00:27:18.41ID:???
jQuery では、event.target.value でも、正常に動く

<div id="btn-wrap">
<button class="BtnA BtnAll" value="1">A-1</button>
<button class="BtnA BtnAll" value="2">A-2</button>
<button class="BtnB BtnAll" value="3">B-3</button>
</div>

<div id="btn-wrap-2">
<button class="BtnC BtnAll" value="11">C-11</button>
</div>

$( function ( ) {
// 外側・親に、イベントを付けて、親で、子のイベントをキャッチする
$( '#btn-wrap' ).on( 'click', function ( event ) {
const value = $( event.target ).prop( 'value' )
console.log( value )
alert( value )
} );

$( '#btn-wrap-2' ).on( 'click', function ( event ) {
console.log( event.target.value )
alert( event.target.value )
});
} );
0390Name_Not_Found
垢版 |
2023/04/04(火) 00:53:07.21ID:???
>>387
@ts-ignoreもなんか負けたみたいでいやだけども調べてみてもいい解決策はなさそう
致し方なしかな

>>389
正常に動くかどうかの話はしてないよ
よく読もう
0391Name_Not_Found
垢版 |
2023/04/04(火) 10:04:45.82ID:???
fruitがHTMLSelectElementなのは確定してるから
event.currentTargetがHTMLSelectElementであることは推定できそうだな
event.target じゃなくて event.currentTarget にしたらどうなるかね
0392Name_Not_Found
垢版 |
2023/04/04(火) 10:48:34.90ID:???
>>387
型チェック入れるとか
if (null === event.target || !(event.target instanceof HTMLSelectElement)) { return; }
キャストするとか
console.log(/** @type {HTMLSelectElement} */ (event.target).value);
0393Name_Not_Found
垢版 |
2023/04/04(火) 11:43:11.41ID:???
>>392
そのへん少し試したけどうまくいかなくて諦めてた
致し方なしとか言う前にもう少し手を尽くすべきだった
反省
0394>>380
垢版 |
2023/04/04(火) 19:16:22.79ID:???
>>391
currentTargetもts(2339)が発生します

>>392
元々、nullチェックは'event.target' は 'null' の可能性があります。ts(18047)のエラーを消すために入れていたのですが、
条件を!(event.target instanceof HTMLSelectElement)に書き換えてもts(18047)とts(2339)は発生しないので、解決しました。
JSDocコメントでのキャストは気づきませんでした、こちらが適している場面があればこちらも利用していきます。ありがとうございました。

>>390 >>393
そうなんです、@ts-ignoreを使用している行で他のエラーが出た時に気づけなくなるので、あまり使用したくないです。
遅い時間までお付き合いいただき、ありがとうございました。

ところで、event.targetの代わりにfruitを使用すべきではない明確な理由はないが、event.targetを使用するのが(通常|普通|無難)である。ということで合っていますか。
0395Name_Not_Found
垢版 |
2023/04/04(火) 22:54:34.70ID:???
1つのイベントハンドラが複数の要素に対して設定されることは一般的で、その場合はevent.targetを使うことになる
今回のケースはそうでないにしても、可搬性や拡張性を考えれば常にevent.targetを使用しておくという判断は妥当だろう
あと処理結果は同じでも、イベントの起こった要素に対して処理をする、という意図をコードに残す意味もある

いずれにしろ現時点のそのコードだけを考えるならお好きなように
0396>>380
垢版 |
2023/04/05(水) 00:34:18.58ID:???
>>395
確かに以下のような場合にはEvent.targetを使う必要があるし、「意図をコードに残す」にとても合点がいきました。
<button data-x="1">btn1</button>
<button data-x="2">btn2</button>
const btns = document.querySelectorAll('button');
for (const b of btns) {
b.addEventListener('click', e => console.log(e.target.dataset.x));
}
0397389
垢版 |
2023/04/05(水) 10:13:44.20ID:???
>>389
に書いた

複数のコントローラーに、イベント登録する場合、
外側・親に、イベントを付けて、親側で子のイベントをキャッチする
0398Name_Not_Found
垢版 |
2023/04/05(水) 11:14:44.19ID:???
このjQuery信者は文脈や論点ってものを全く理解しないのな
jQueryでは~jQueryなら~ってただただ念仏を唱えて布教に励む様子がまさに信者
0399Name_Not_Found
垢版 |
2023/04/05(水) 13:56:33.20ID:???
Slickで出来てSwiperでできないようなアニメーション処理って何かある?
0400Name_Not_Found
垢版 |
2023/04/06(木) 13:40:22.56ID:???
Mathjaxって配列環境でcolspan, rowspanって使えないのか?
\multicolumnというべきか
0401Name_Not_Found
垢版 |
2023/04/13(木) 11:04:39.61ID:08KgWRFK
JavaScript でローカルファイルを読み書きするにはどうすればいいでしょうか?
fetchという関数が使えるかと思ったんですが、blocked by CORS policy というエラーになってしまいます。
0402Name_Not_Found
垢版 |
2023/04/13(木) 14:00:39.10ID:???
CORS(Cross-Origin Resource Sharing)制限は、
ローカルPC 上に、何かのサーバーを立てて、そこから配信すれば良い

VSCode の拡張機能、open in browser では、
file:/// から始まるローカルファイル・アクセスだから、CORS制限あり
file:///C:/Users/Owner/Documents/test.htm

一方、Live Server では、サーバーを立てているから、CORSにならない
http://127.0.0.1:5500/test.htm

同様に、コマンドプロンプト・PowerShell から、
1-liner で、Ruby で作られた遅いウェブサーバー、WEBrick を起動すると、
ruby -run -e httpd . -p 8080

これも、サーバー経由だから、CORSにならない
http://localhost:8080/test.htm
0403Jun
垢版 |
2023/04/26(水) 01:05:22.69ID:2ly3VJ6h?2BP(0)

JavaScriptで電卓を作るよ。
0405Jun
垢版 |
2023/04/27(木) 23:52:36.98ID:qkYl27sL?2BP(0)

JavaScript + HTML + CSS で電卓やホームページを作るのが今の目標です。
0406Name_Not_Found
垢版 |
2023/05/09(火) 15:14:09.97ID:???
マイナーな質問

XyJaxで、一括して文字色を変える方法教えてくれ

\color{red}を使っても、その箇所だけしか変更できない。
\xymatrix環境内全部の文字色を変えたい
0408Name_Not_Found
垢版 |
2023/06/16(金) 12:40:56.37ID:???
こんにちは。
誰か教えてください。

<style>
.def { color: red;}
</style>

<div>
<p class="abc">aaa</p>
</div>
<div>
<p class="abc">bbb</p>
</div>

<script>
dif = document.querySelectorAll('.abc');
dif.forEach(element => document.querySelector("div").classList.add("def"));
</script>

このようなコードですが、実行すると1つめのaaaを囲ってるdivにしかclassが追加されません。
条件にあるすべてのdivに追加するにはどうすればいいのでしょうか?
0409Name_Not_Found
垢版 |
2023/06/16(金) 14:16:25.94ID:???
>>408
document.querySelectorAll('.abc').forEach(element => element.closest("div").classList.add('def'));
0410Name_Not_Found
垢版 |
2023/06/16(金) 14:24:00.49ID:???
>>409
レスありがとうございます。
closestなんてものがあるのですね。知りませんでした。
おかげで思うように行きました。
ありがとうございます。
0411Name_Not_Found
垢版 |
2023/06/16(金) 16:50:32.34ID:???
>>408
これでもいけると思う
document.querySelectorAll('div:has(> .abc)').forEach(x=>x.classList.add('def'));
0412Name_Not_Found
垢版 |
2023/06/16(金) 16:57:38.56ID:???
これでもいいのかな?間になにか挟まってたらダメだけど
('div >:is(.abc)')
0413Name_Not_Found
垢版 |
2023/06/16(金) 17:02:39.12ID:???
>>411,412
こちらもありがとうございます。
大変助かります。
0414Name_Not_Found
垢版 |
2023/07/14(金) 05:34:41.98ID:zlYPgrgm
https://jsfiddle.net/um71qgzf/3/
こんな表示状態で、textarea に入力して改行していき、表示可能行数を超えると、スクロール状態になります。
入力された行数に応じて textarea が縦に伸びて、textareaのコンテナにあたる li もそれに応じて縦に伸びるようにするにはどうすればいいのでしょうか?
0415Name_Not_Found
垢版 |
2023/07/14(金) 17:33:09.83ID:???
自前でやろうとせずにライブラリ探してきたら?
0416Name_Not_Found
垢版 |
2023/07/14(金) 17:53:03.06ID:???
textarea 高さ 自動
でググるとそれっぽいのあったよ
0417Name_Not_Found
垢版 |
2023/07/17(月) 03:34:14.72ID:???
SELECTタグで、人物を選択出来るようにしたいのですが、SELECTが非展開の時はIDだけ表示して、
展開した時だけ、IDと人物名が表示されるようにする方法を教えてください。

人物配列

var array =
[
{
"id": 1,
"name": "人物1"
},
{
"id": 2,
"name": "人物2"
}
]


こんな表示にしたいです。

https://i.imgur.com/WWwRHPV.jpg
0418Name_Not_Found
垢版 |
2023/07/17(月) 08:04:52.05ID:???
展開したときにどこにID表示されてるの?
0419Name_Not_Found
垢版 |
2023/07/17(月) 12:41:46.99ID:???
>>417
一応確認するが、非展開時に数字にする意図は何?
フォーム送信時に数字を送信したいだけなら、尊信値(value属性値)と表示する選択肢(子要素の文字列)を分けて書くだけで良いのだが
0422Name_Not_Found
垢版 |
2023/11/20(月) 22:52:12.45ID:???
何をしていいか分からないな…
0423Name_Not_Found
垢版 |
2023/12/12(火) 22:36:34.47ID:???
変数名はキャメルケース(getNameなど)がよく使われるようですが、
スネークケース(get_nameなど)はやはり使わない方がいいですか?
0424Name_Not_Found
垢版 |
2024/02/28(水) 02:36:50.61ID:pCYviIFS
https://liveweave.com/6IlWRJ

JavaScriptでスプリッターを作っているのですが、左右を分割するスプリッターをマウスで動かしても、マウスの位置とずれてしまいます。
どのように修正すればいいのでしょうか。
0425Name_Not_Found
垢版 |
2024/03/28(木) 04:02:18.18ID:???
>>423
良いか悪いかはさておき

考え方としては
そのコードを、どのくらいの範囲で共有するのか
ってのを基準に考えたらいいと思う

自分だけなら好きにすればいいし
身内だけなら話して決めればいいし
広範囲なら世間一般の流れに合わせるべき

みたいな
0426Name_Not_Found
垢版 |
2024/03/28(木) 04:07:49.72ID:???
>>417
すんごい前だけど
似たようなことを頑張ったことある

でもやっぱり
select要素が開いているかどうかを判定出来ないので
原理的に出来なくて

select要素のように振る舞うものを
手作りするのが早かったです
0427Name_Not_Found
垢版 |
2024/04/08(月) 00:13:34.85ID:???
今動作しているのがサーバ上(https//:~)なのかローカル(file:///C:~)なのか区別する必要性が出てきました。
locationで取得する以外にいい方法ありますか?
区別さえ確実にできれば得られる値は(true/falseなど)なんでもいいです。
0428Name_Not_Found
垢版 |
2024/04/08(月) 12:44:09.64ID:???
>>427
window.location.protocolを見れば良いんじゃないかな
httpかhttpsなら、みたいな
0429Name_Not_Found
垢版 |
2024/04/18(木) 13:55:10.68ID:NjgPbiyX
var people = [{
"id" : "ID1", "name" : "人物1", "room" : "1"
}{
"id" : "ID2", "name" : "人物2", "room" : "2"
}]

var select_tag = document.getELementById("my_select");

for ( var i = 0; i < people.length; i++ ) {
var option = document.createElement("option");
option.value = people[i].id;
option.innerText = people[i].name;
my_select.append(option);
}

こういう感じの select を設置して、option が選択された時に、選択された人物の room を取得するにはどうすればよいのでしょうか?
0430Name_Not_Found
垢版 |
2024/04/18(木) 17:45:29.04ID:???
>>429
select_tag.selectedIndexに
今選ばれてるoptionが何番目かが入ってるから

select_tagのchangeイベントにフックして
その数字を拾って、people[数字].idを参照したらいいよ
0431Name_Not_Found
垢版 |
2024/04/18(木) 17:53:34.56ID:???
ごめん間違えた
people[数字].roomだった
すまんこ
0432Name_Not_Found
垢版 |
2024/04/19(金) 02:15:05.41ID:???
>>431
出来ました!ありがとうございます!

select_tag.addEventListener("change", (e) =>{
let i = select_tag.selectedIndex;
alert(people[i].room);
});
0433Name_Not_Found
垢版 |
2024/05/07(火) 02:22:40.33ID:YeUeQCju
calleeという古語を使っていたが
怒られた
0435Name_Not_Found
垢版 |
2024/05/09(木) 18:11:07.56ID:???
今のJavascriptファイルの管理って、どれがスタンダードになっていますか?
webpackはだいぶ古いんですよね?
0436Name_Not_Found
垢版 |
2024/05/09(木) 20:40:41.69ID:???
>>435
そもそもwebpackは管理するものではないのだが…

バンドルツールのシェアのことなら
webpackがまだまだ支配的だと思う

viteとturbopackが頑張り始めたところだけど
この辺はJSだけの話ではなくなるので
なんとも言い難い感じ
0437Name_Not_Found
垢版 |
2024/05/09(木) 20:42:16.82ID:???
パッケージの管理のことなら
npm一択な気がする

ツール自体はyarnとかpnpmとか色々あるけど
0438Name_Not_Found
垢版 |
2024/05/10(金) 01:03:55.90ID:???
Ruby on Rails では、npm は遅いから、yarn を使う

Rails 7 からは脱webpack で、
Import Maps で、CDN から直接インポートする

HTTP/2 が普及して、バンドル・Node.js が不要になった。
バンドル不要のTailwind を使う

バンドルするなら、esbuild, rollup, webpack を使う。
esbuildならCSS プロセッサとして、Bootstrap を使う
0439435
垢版 |
2024/05/10(金) 08:14:30.07ID:???
>>436-438
バンドルツールのことです。
webpack→viteと学んでいるのですが、
正直複雑すぎてついていけてません・・・

特にviteでバンドルして生成されるファイル構成に
どうしても違和感があって、勉強を中断しています。
ChatGPTに聞くとviteのようにハッシュ値で変換した
ファイル名にすることでセキュリティが高まるそうですが、
元のファイル名から変わるのに違和感を覚えます
0440438
垢版 |
2024/05/11(土) 08:51:08.46ID:???
Vite は、Vue.js の作者だったか?
Vueも、Vue 3 で人気が無くなって、React 一色になった

2, 3年前は、Vueが転職で有利だったのに、
今は、React, TypeScript

ブラウザのキャッシュ対策として、
ファイル名はハッシュ値の方が良い

ファイルを更新するとハッシュ値も変わるから、
古いファイルがキャッシュされない

どうせ配布用のファイル名だから、開発用には関係ない
0441Name_Not_Found
垢版 |
2024/05/11(土) 17:41:41.54ID:???
Viteの書き出すファイル名はconfigで変更できたような
0442Name_Not_Found
垢版 |
2024/05/12(日) 01:16:53.68ID:???
>>439
元のファイル名がわかることに
どこまで意味があるのか?って話じゃね?

たとえばbabel+webpackだって
トランスパイル、パッキング後は
部分的にバイナリになったりするわけで
要するに人間の読めるものではなくなる

つまり、ファイル名がハッシュ化されなくても
人間が得られるものはせいぜい
そのファイルがなんなのかの想像がつきやすい
程度のこと

ファイル名が中身と全く関係ない
なんてこともよくあるとは言わんまでも
一定数わけで、となるとデプロイされるファイル名には
それほど大きな意味がない

ってことが多いのではないかな
0443438
垢版 |
2024/05/12(日) 01:18:55.04ID:???
Vite は、Ruby on Rails をコピーしたのかな?

foreman, webpack-dev-server で、hot reload するみたいな?
ファイルを修正したら、即ブラウザに反映されるとか

開発時には、CSS をコンパイルせず、
動的にスタイルを当てているだけとか
レスを投稿する


ニューススポーツなんでも実況