1 名前:デフォルトの名無しさん mailto:sage [2022/08/07(日) 15:57:40.26 ID:TS5TGpUB0.net] !extend:checked:vvvvvv:1000:512 JavaScript を自ら学ぶ人のための質問スレッドです。 >>2-5 のテンプレを読んだ上で質問してください。次スレは>>950 が>>2 の「次スレの立て方」を元に立ててください ■質問を書く上で (1) 煽り、コード制作依頼等、人を不快にさせる投稿はご遠慮下さい。公序良俗を守った応対を心がけてください。 (2) 他の人に迷惑をかけるスクリプトの質問はご遠慮ください。 (ブラクラ、[戻る], [閉じる], [クリック] の妨害、画面占有など) (3) 質問者及び議論を行う人はメール欄を空欄にし、名前にレス番を入れることを強く推奨します。回答者はなりすましを判断できませんので、なりすましが現れても自己責任となります。 (4) 常に自発的に調べる心構えを持ってください。 具体的には「自分で調べてから質問する」「回答をもらってわからない単語があればGoogle検索してみる」など。 わからない内容を代わりに調べてくれる回答者をお望みの方は余所で質問してください。 (5) 出来るだけ一般的な用語を使用してください。脳内オレオレ用語は混乱の元です。 (6) 出来るだけサンプルコードを掲示してください。言葉による説明は行き違いが生まれる場合があります。 ※必ず「問題の事象が再現されること」を確認してください。 必要な部分だけ切り出したつもりで現象が再現できていなかったケアレスミスがしばしば見られます。 (7) サンプルコードに HTML が含まれる場合は validator.w3.org/ で [Check] してみてください。 (8) 質問を具体的かつ詳細に書くと回答を得られやすいです。>>2 の質問テンプレートを活用してみてください。 (9) ライブラリ関連の質問は禁止です。関連スレにあるライブラリ質問スレで質問して下さい。 (10) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。 ■前スレ JavaScript の質問用スレッド vol.124 https://mevius.5ch.net/test/read.cgi/tech/1636525464/ VIPQ2_EXTDAT: checked:vvvvvv:1000:512:: EXT was configured
692 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 18:33:43.53 ID:omRbdhVsr.net] やたらイキって言葉遣いが悪いのと同じ回線だと肩身が狭い・・・
693 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 21:01:23.22 ID:bsut6PhH0.net] >>672 デザイナーはせいぜいコンポーネント作ってStoryBookに載せるまでが責務だろw
694 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 22:20:39.69 ID:Q9LzyMl00.net] プログラマにバカにされてreact勉強中のデザイナー様が激おこです
695 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 22:30:19.52 ID:yxGxd3AO0.net] webデザイナーってjqueryぐらいまでは覚えさせられたかもだけど 流石にreactやvueまでやれってのは酷ではw そんなのフロントエンドエンジニアの仕事でしょw
696 名前:デフォルトの名無しさん mailto:sage [2023/03/03(金) 23:30:24.99 ID:Q9LzyMl00.net] だってフロントエンドエンジニアはhtmlもcssもわからないバカばっかりなんだもん
697 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 18:46:55.35 ID:erCI1bTUH.net] javascriptコードでバグの伝搬を制限して拡張性を高める必要性のある堅牢なプログラムなんて不要だからでしょ
698 名前:デフォルトの名無しさん mailto:sage [2023/03/04(土) 18:52:38.30 ID:erCI1bTUH.net] みんななんで仲良くなれないかな
699 名前:デフォルトの名無しさん mailto:sage [2023/03/05(日) 16:50:40.53 ID:RB9OOifa0.net] 仕事だし自分の領域に少なからず関わってくるんだから覚えろよ わからないじゃねーんだよボケ^^ これでよし
700 名前:デフォルトの名無しさん mailto:sage [2023/03/11(土) 23:19:16.39 ID:qvilA0zq0.net] sortメソッドは必ず、比較関数と一緒に使用する必要ありますか? sortメソッドは数値を並びかえだと比較関数と一緒でないとうまくいかなくて、 でも、文字列のソートなら、ソート関数なくてもうまくいくみたい。 sortは文字列でも数値でもソート関数使った方がいいのでしょうか?
701 名前:502 mailto:sage [2023/03/12(日) 04:39:15.28 ID:PQcYNrkb0.net] >>688 疑問に思うことがあれば、まずMDNで関数の仕様を確認してみるといい sort 関数なら、解説に関数を指定しなかった場合についてもちゃんと書いてある https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/sort > compareFn が与えられなかった場合、undefined 以外のすべての配列要素は文字列に変換され、文字列が UTF-16 コード単位順でソートされます。例えば、"banana" は "cherry" の前に来ます。数値のソートでは、9 が 80 の前に来ますが、数値は文字列に変換されるため、Unicode 順で "80" が "9" の前に来ます。undefined の要素はすべて、配列の末尾に並べられます。
702 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 09:33:44.40 ID:do9jOqKh0.net] >>689 ありがとうございます。
703 名前:デフォルトの名無しさん [2023/03/12(日) 10:07:09.74 ID:mPShShEs0.net] ティラノスクリプトでゲーム作ろうとしたら、結局JSまで触らないと無理そうで及び腰・・・ ・例えば変数aに"gazou1"という文字列を入れる ・『【"変数a"+.jpg】を表示』みたいな記述?? ←ここが分からない ・結果、gazou1.jpgが表示される こんな感じの、変数に入れた文字列を使用して画像表示ってできますか? JS 変数 画像表示 とかで調べても情報が多すぎてさっぱり分からない
704 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 11:40:49.62 ID:SvUIzONJr.net] >>691 専用の掲示板へどうぞ https://tyrano.jp/home/bbs
705 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 12:27:02.18 ID:mPShShEs0.net] >>692 誘導ありがとうございます ティラノだけでは無理そう&ティラノ上ではJSの記述が使える、という事でこちらで質問しました なのでJSで可能か不可能かだけでも教えて頂けると助かります JSで不可能なら調べたところで出て来ないでしょうから延々調べ続けるはめに・・・
706 名前:デフォルトの名無しさん mailto:sage [2023/03/12(日) 12:49:02.36 ID:PwnTbWEur.net] >>693 まずはティラノスクリプトに詳しい人に聞いてみるのが筋ではないですか? 同じ問題に遭遇した人もきっといるはずでノウハウも蓄積されてると思いますよ wikiなんかもあるようですし、そちらも確認してみましたか?
707 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 10:07:27.43 ID:/ROF2oq40.net] >>691 こういうこと? =============================== <body> <a href='#' onclick='fun'>link</a> </body> <script> function fun(){a.href='https://....'} </script> =============================== =============================== <body> <a href='#' id='href'>link</a> </body> <script> href.onclick=function(){a.href='https;//...'} --------------------- // または let aLink=document.querySelector('[a]'); aLink.addEventListener('click',()=>{a.href='https://...'}): </script> ================================
708 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 17:49:23.15 ID:dqLl9/D/M.net] >>683 むしろjQueryの方が難しいと思うけど...
709 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:09:00.85 ID:LN5ju60U0.net] >>695 表示する画像を変数を使って切り替えたいので、 if 変数a=='花' なら 花.jpg を表示 else 変数a=='山' なら 山.jpg を表示 みたいな感じで一応は表示できるのですが、表示したい箇所が複数あるので if 変数b=='花' とか if変数c==’’花' とかで凄く長くなりそうなのです でももし 変数の中身+.jpg みたいな記述がjsに存在するなら aの場所には 変数aの中身+.jpgを表示 bの場所には変数bの中身+.jpg みたいに凄く簡略化できるかなって 教えて頂いたコードを調べてみます!ありがとうございます!
710 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:18:34.65 ID:z8Hv0b/wr.net] >>697 他板にティラノスクリプトスレがあったんで 専用掲示板より5chがいいのであれば続きはそちらでどうぞ https://mevius.5ch.net/test/read.cgi/gamedev/1428724538/
711 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 19:42:26.91 ID:LN5ju60U0.net] >>698 そこは質問スレじゃないのでどうにも質問しづらくて とうかJSの質問スレでJSの質問してるのに「ティラノ上で動かしてる」ってだけで、 そこまで「よそいけ、よそいけ」って言わなくても・・・
712 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:03:21.60 ID:z8Hv0b/wr.net] >>699 >そこは質問スレじゃないのでどうにも質問しづらくて そのスレを「質問」で検索してみると皆質問してるのが分かります 気後れする必要はないと思いますよ >とうかJSの質問スレでJSの質問してるのに>「ティラノ上で動かしてる」ってだけで、 >そこまで「よそいけ、よそいけ」って言わなくても・・・ あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです それについてはこのスレよりティラノスレや専用掲示板の方が的確なアドバイスが得られるはずです 違いますか?
713 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:12:22.98 ID:z8Hv0b/wr.net] ついでに「ティラノ上で動かしてる」JSについてもそちらで聞いた方が良いでしょう ティラノスレを見渡すとJSのコードもたくさん貼ってありますよ
714 名前:デフォルトの名無しさん [2023/03/13(月) 20:21:27.02 ID:LN5ju60U0.net] >>700 >あなたが必要としてるのは「ティラノスクリプトで変数を使って画像表示したい場合にどうすればいいか」の解決策だからです 違います。自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です 最初にティラノの名を出したことで誤解を招いたかも知れませんが、 >>691 に >JS 変数 画像表示 とかで調べても >>693 に >なのでJSで可能か不可能かだけでも教えて頂けると助かります と書いてあるように、ティラノではなく、あくまでJSについて尋ねています
715 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:45:42.74 ID:z8Hv0b/wr.net] >>702 >自分の質問を要約すると「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」です では聞きますが、それが何のために必要なのですか?
716 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:57:54.94 ID:ayGBKgIT0.net] 拡張子を付加する機能は無いよ WBC始まってキャッチボールしたい気持ちはわからんでもないけども
717 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:58:10.41 ID:bqu+B+fY0.net] >>702 > 「JSには、変数の中身の文字列に.jpgなどの拡張子を付け足して画像を表示する機能はありますか?」 はい。可能です imgタグにデータURLを引き渡し表示することはごく普通に見ることができます Base64エンコードされた文字列とmediatypeをセットするだけです
718 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 20:59:33.75 ID:1Iq9NysVM.net] >>702 あなたの質問はjavascriptの質問ではありますがティラノスクリプトの仕様を知らないと答えられないものです こちらはティラノスクリプトの仕様を知らないのであなたの代わりに調べることから始めなければなりません ティラノスレであれば詳しい人がいると思うのでそちらへどうぞ
719 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 21:59:41.61 ID:LN5ju60U0.net] >>703 上述の通りゲーム作成と作業の簡略化のためです >>704 拡張子の付け足しは誤解を招く表現でした。変数の中にある文字列と同じ名前の画像を表示するってことです >>705 ありがとうございます。調べてみます >>706 あくまでJSの事として聞いているので「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」って感じの答えで十分です ティラノスレでJSのこと聞くよりJSスレでJSのこと聞く方が早そう、って考えはそこまで変ですか?
720 名前:デフォルトの名無しさん mailto:sage [2023/03/13(月) 22:18:31.29 ID:z8Hv0b/wr.net] >>707 >上述の通りゲーム作成と作業の簡略化のためです それは「ティラノスクリプトで変数に応じた画像表示する」こととは違うのですか? >「JSではこれこれこうやる。それがティラノ上で動くかは知らんけど」 このスレでそんな回答をもらうよりはティラノスレで質問して 「ティラノスクリプトではみんなこうやってるよ」って回答をもらう方が何倍も早くて確実だと思いますがいかがでしょう
721 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 01:06:18.93 ID:VmfXTFqwa.net] 例えば、jQuery で、 <img id="photo_1" src="a.png"> を、以下に変更するなら <img id="photo_1" src="image_1.jpg"> // :first は、最初に見つかったもの $( '#photo_1:first' ).each( function ( index, elem ) { const image_1_basename = "image_1" const image_1_filename = image_1_basename + ".jpg" $(this).attr('src', image_1_filename) // 設定 } )
722 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 02:37:35.49 ID:JIhs77SCM.net] JSスレでJSのこと聞きたいんならティラノの名前出すなよ
723 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 08:16:42.83 ID:gMQMDZBfd.net] それはそう
724 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 13:16:01.19 ID:bBCbUtGh0.net] jpegの名前を動的に指定できるよ
725 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 13:21:05.82 ID:crjDIavXr.net] >>707 ティラノについて少し調べたのでスレ違いを承知の上で書きます あなたが>>691 や>>697 でやりたいことは [bg storage="&f.bg + '.jpg'" time=1000] というような書き方で実現できるかと思います 簡単に説明します まず「&f.bg」の「&」はエンティティと呼ばれるもので変数の値をタグのパラメータとして渡すときに使用します https://tyrano.jp/usage/tech/hensuu の最後に説明があります そして、storageパラメータに渡す際に「 + '.jpg'」で拡張子を連結しています。これは https://tyrano.jp/sample2/code/kiso/19#demo のkaisetsu/19_variable_1.ksの415行目~に変数に対して数値演算をした値を パラメータに渡す例がありました。文字列の連結も同様に可能です これによって、変数f.bgの値が「花」ならば「花.jpg」が、「山」ならば「山.jpg」が表示されます 例は背景ですがキャラやその他の画像でも可能だと思います
726 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 13:30:55.51 ID:crjDIavXr.net] >>707 なお、簡単なサンプルで動作確認をしました https://tyrano.jp/usage/tutorial/moji 上記チュートリアルに従って新規プロジェクトを作成し、 first.ksの内容を以下のように書き換えて実行してみてください *start [wait time=100] 背景を変更します。[r] [link target=*select_room]<教室>[endlink][r] [link target=*select_rouka]<廊下>[endlink][r] [s] *select_room [eval exp="f.bg='room'"] [jump target=end_select] *select_rouka [eval exp="f.bg='rouka'"] [jump target=end_select] *end_select [cm] [bg storage="&f.bg + '.jpg'" time=1000] [jump target=start]
727 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 20:28:58.71 ID:2HNLo12V0.net] >>713 ありがとうございます!!できました!!
728 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 20:53:16.27 ID:2HNLo12V0.net] 作業が一気に楽になりました! >>713 も他の方も本当にありがとうございました! そして不可能と思いこんでたことが実は可能だったあたりはすみませんでした!
729 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 20:53:28.39 ID:GiZ8CeD1r.net] >>715 解決したのならなによりです が、今回無駄に遠回りをしてしまったのは自覚、反省しましょう あなたはこの問題の解決はティラノ単体では無理だと決めつけてしまったためにこのスレで質問しましたが その判断は正しくありませんでした 繰り返しになりますが、この先また何か躓いたときはまずティラノの掲示板なりスレなりで聞いてみるようにしましょう(たとえJSに関することであれ) その方が解決が早く、的確なはずです
730 名前:デフォルトの名無しさん mailto:sage [2023/03/14(火) 21:02:42.69 ID:GiZ8CeD1r.net] >>716 ちょうどかぶってしまいましたが、ちゃんと自分の非を認められる人で安心しました こちらも少し言葉がキツくなってしまった点はお詫びします
731 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 01:17:49.11 ID:sTLgg4Iop.net] 初めまして Pixiv filter(GitHubで公開、リンクはスパム対策で貼れず)という拡張機能がありまして、それに似たものを自作したいと思い立ち、色々調べてみました 別スレにて、検索画面上での作品ごとのタグは、画面には表示されないもののデータとしては生成されている、という事を伺ったのですが、 どこに生成されているのか、どうやったら参照できるのかなどが分からず、苦戦しております。 ご教授頂ければ幸いです
732 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 02:28:06.62 ID:i4bxOxoza.net] これか? github.com/kazu-ux/PixivFilter React, TypeScript
733 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 07:58:24.49 ID:q+AMrJS6H.net] 反省なんて必要ないわ、なんか強迫症的なやつがうざい なんなんだ、執着が過ぎる
734 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 08:01:02.20 ID:q+AMrJS6H.net] プログラムではすべてのタグを検出して配列等に格納しているが そこから抽出して出力する処理をしてるってことじゃない? 見てないからわからんけど
735 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 09:37:50.61 ID:OLitJJv/d.net] >>719 なんか見覚えあると思ったらこれか https://mevius.5ch.net/test/read.cgi/hp/1439005423/342 343をレスしたの俺だけど回答の内容を理解できなかったってこと? 分からないところがあったのなら追加で質問すればよかったろうに それをせずに全然違うスレで聞き直してるのはなんで?
736 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 20:45:42.17 ID:q+AMrJS6H.net] Pixiv filterが何なのかわからないし確認もしてないけど、 例えば複数の作品毎にTagオブジェクトがあったとして、 Tagのプロパティに表示させるか表示させないかを判定するプロパティがあり そのプロパティ名がshowAbleで、表示を許可するのは、showAble:true 許可しない場合には、showAble:false とされていたとすれば まず最初にすべての作品Tagオブジェクトが格納されている配列を取得し(もしくは配列に取得する関数を作り) (let tagArr=[tag1,tag2,tag3,tag4....];) その配列から、tag.showAble=trueであるオブジェクトを取得して別の配列(showAblerArray)に格納し (let showAbleArray=[] ; for(let t of tagArr){ (if(t.showAble==true){showAbleArray.push(t) showAbleArrayの全要素に対して、表示させる処理をする (for(let s of showAbleArray){,,,,,,どこに表示させるか......}) っていう感じでどうですか?
737 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 22:44:21.64 ID:ohrI2qnX0.net] jQueryはなぜ嫌われる? 簡単な構文で便利だと思うが…。 他のライブラリ・フレームワークとの互換性が高ければいいのに。
738 名前:デフォルトの名無しさん mailto:sage [2023/03/15(水) 23:48:50.56 ID:T0OxazTtM.net] 技術的には好かれてるわけでも嫌われてるわけでもない スレ的には脈絡なく蒸し返す厄介な奴がいるので敬遠される
739 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 07:03:01.34 ID:Hd88hZaKH.net] 嫌われてはないんだろうけどスレチなんでない?
740 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 07:15:13.56 ID:Hd88hZaKH.net] javascriptで作られたプログラムの処理に関して Jqyeryを使えば簡単だよって言われても いやいやここはjSで書きたいんでってなるでしょ そういう質問に対してjqのほうが簡単っていうのがよくわからん フレームワークの質問スレは ベース言語のすれとは別に立てたほうが
741 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 09:02:04.98 ID:c9lqR0yG0.net] www
742 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 10:39:46.62 ID:fxj0X8UB0.net] フレームワークスレは一応立ってるね 糞スレだからそこで質問して回答があるのか知らんけど
743 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 11:25:08.38 ID:QjQVIFFDr.net] >>721 これもしかして私に対して何か言おうとしてる? もしそうならもう少し具体的に問題点を指摘してもらえないかな
744 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 15:46:42.93 ID:FgyDZ6E70.net] いえいえ、違います、気にしないでください
745 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 20:33:58.52 ID:ParHajkN0.net] >>732 あなたは>>721 とワッチョイもIPも違うようだが…
746 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 20:55:51.48 ID:Olf8APhOd.net] >>724 どうですか?も何もそんな都合のいい妄想データを元に書いたコードなんぞ 役に立たないどころか混乱させるだけだからやめようよ
747 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 21:11:03.92 ID:Hd88hZaKH.net] 混乱させるだけとかwww そもそも解答者がわざわざ対象コードを検索して読み込み そして質問者が満足するようなコードを生成するとか、自分は絶対しないw 質問者は ・何やら検索するらしい ・検索はタグで行うらしい ・タグで検索しても表示するものとしないものがあるらしい その3点でアドバイスするのなら ・検索ワードでヒットする画像を抽出する ・ヒット判定は画像のタグプロパティで判定 ・判定でヒットした画像を1枚もしくは複数枚表示する とした場合で、初心者初学者向けにアドバイスするのなら 上記の感じのアドバイス以外に何かできるアドバイスあるん? 質問の質以上のアドバイスなんてできない まずはオブジェクトとプロパティあたりから始めるしかないっしょ っ
748 名前:て思ってのアドバイスなのねん [] [ここ壊れてます]
749 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 21:38:40.67 ID:Olf8APhOd.net] 質問者がわからないと言ってるものには具体的な対象があるわけよ それを無視して一般的な考え方のアドバイスをするなら抽象的な話にとどめればよくて わざわざデタラメコードを生成することはなかろ
750 名前:デフォルトの名無しさん mailto:sage [2023/03/16(木) 22:01:47.84 ID:Hd88hZaKH.net] それはそうですね おっしゃる通り でもデタラメとか言わんでください!
751 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 21:04:07.19 ID:irjN28+Dd.net] 他に適切な表現が見つからなかったからごめんな
752 名前:デフォルトの名無しさん mailto:sage [2023/03/17(金) 21:08:34.06 ID:ZP9+v2PL0.net] こっちがデタラメなコード書くと見かねていい感じのコード書いてくれるツンデレ
753 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 02:26:56.50 ID:dC3/JFCa0.net] すみません、私の知識不足というか理解不足も大きそうですので、手が出るところからさせて頂こうと思います。 javascriptの「fetch」メソッドなのですが、これはjsonファイルを読み込む事はできないのでしょうか?ローカルで試しましたが、エラーになってしまうようです
754 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 05:10:03.75 ID:s5wH/EpL0.net] >>740 fetchやXHRも >>469-475 と同様基本的にFileURIでのアクセス不可
755 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 15:36:03.94 ID:dC3/JFCa0.net] ありがとうございます。「ローカルのサーバーを立てる」と良いらしいのですサーバーは専用のパソコンでないと、セキュリティ的にも危険と聞いた事もありますが、大丈夫なのでしょうか。また、実際やるとしたら、どのような方法があるでしょうか。
756 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 15:40:55.59 ID:T8cp6VGg0.net] Xamppつかっておけばよろし
757 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 19:03:06.43 ID:xpgWDt8BH.net] >>742 vscodeって使える?すごく簡単なエディタ そのエディタでliveServerっていう拡張があるんだけど使えるか試してみたら?
758 名前:デフォルトの名無しさん mailto:sage [2023/03/18(土) 21:30:20.18 ID:HGxbjpaKd.net] Promise.race()で複数のPromiseを渡して、最初に終了したタスクのPromiseを受け取ったあと、同様に順次残りのタスクを完了したものから受け取るような書き方はできますか? (最終的にすべての非同期タスクの終了まで繰り返す) Pythonでいう、as_completedのように複数非同期タスクを、終了次第順次ループで受け取るような形です。
759 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:35:04.92 ID:DxTl2kdL0.net] >>743 >>744 vscodeの方を使わせて頂きました。お二方ともアドバイス、ありがとうございました。 余談ですが、jsonファイルに単なる文字列(あああ、abc、123)などを単発で格納するとしても、「名前:値」のフォーマットは守らないといけないんでしょうか(名前をいちいち宣言しないとダメなのか)。
760 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:36:07.26 ID:DxTl2kdL0.net] 正確には「{"名前":値}」ですね。省略できれば楽だなと思ったのですが。
761 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 12:59:08.70 ID:4pa7IAk9d.net] {"名前":値}はあくまでオブジェクトの形式であって文字列や数値のみを返したいなら不要 ただし文字列は"あああ"や"abc"とする必要はある https://www.json.org/json-ja.html
762 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:08:00.26 ID:DxTl2kdL0.net] ありがとうございます。おそらく "abc", "あああ" のようなカンマ区切りで大丈夫でしょうか。
763 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 13:20:25.80 ID:S0dCUzy1d.net] 単一の値でない場合は配列にすること ["abc", "あああ"] 有効なjson形式かどうかはJSON.parse()に食わせてみるといい JSON.parse('"abc", "あああ"'); //NG JSON.parse('["abc", "あああ"]'); //OK
764 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 14:04:53.34 ID:DxTl2kdL0.net] >>750 参考になりました。ありがとうございます。
765 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 15:26:18.81 ID:FTc6ajskM.net] >>745 各promise完了後に順次実行したい共通処理をmapしてthenでチェイン Promise.all(promises.map(p=>p.then(log(“resolved”)))).then(log(“All finished”); function log(message=“”) { return (x) => { console.log(`${message}: ${x}`); return x; } }
766 名前:デフォルトの名無しさん [2023/03/19(日) 16:15:48.14 ID:/GeuLHtL0.net] 趣味でWebサイトを使うのにJSを勉強しだしてまだ3年目なのですが、 なぜか年明けから会社のDX担当にされました。 今社内システムがIE9向けにActiveXが使われているのですが、Edgeに移行するので動くように直してと言われています。 これまで自分なりにいろいろ調べてきて、とりあえずHTML/CSSなどの見た目の部分と、大したことをしていないJSの部分は移行できたのですが、 肝心のActiveXであれこれやっているところを直すことができません。 期限は3月末までで苦しんでいます。 例えばこのような箇所があります。 var connection = new ActiveXObject("ADODB.Connection") var recordset = new ActiveXObject("ADODB.Recordset") var connectionString = "Provider=sqloledb;Data Source=〜〜〜 var query = "〜〜〜 connection.Open(connectionString) recordset.Open(query, connection) while (!recordset.EOF) { var encryptedData = recordset.Fields("data").value var decryptedData = decryptData(encryptedData, decryptionKey) 〜〜〜 recordset.MoveNext() } これをEdgeで代替手段で実装しようと思ったら、どのようなコードになりますか? ライブラリやフレームワークは使ってはいけないことになっていますが、バレなさそうなものなら中に組み込むつもりです。 どうかよろしくお願いします。
767 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 16:36:55.71 ID:HI67bUFb0.net] 代替手段なんてない 仕事振ったやつが何も分かってない あれこれやってる内容をなにか別の技術で1から組み立てる必要あり それかedgeのIEモードは検討出来ないの?
768 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 17:21:20.47 ID:HTlOdPesM.net] 今から実装してテストしてリリースしてその後の問い合わせ対応や運用に備えるのはスケジュール的に無理でしょ 3月末を死守する必要があるならIEモード1択 IEモードで時間稼ぎしてその間にサーバーサイドからDBアクセスする仕組みを作る IEモードにするにしてもグループポリシーの変更・適用のテストや問い合わせ対応の準備を考えればそれでも時間が足りないくらい
769 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 18:07:07.17 ID:EAkcZvWPd.net] >>753 のコードにぶち当たった時点でEdgeというかブラウザ単体で実現できないことには気がついて欲しいものだが 仮にも2年はJSを勉強していたと言うなら
770 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 18:51:42.92 ID:M92RK9ru0.net] JSONでダミー値をコメントのつもりで使ってたらエスケープできてない\でパースエラーになるデータができたりして使うのが怖くなった やっぱコメントぐらいは定義必要だったなこれ 人間が手書きするものじゃないとしてもよく普及したもんだ
771 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 18:56:28.01 ID:M92RK9ru0.net] >>753 そういうのってEdgeのIEモードに移行して終わりでしょ 周囲も期間的にその程度しか期待してないと思うけど
772 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:09:54.29 ID:M92RK9ru0.net] ど素人だとIEモードが何なのかで3月は潰れるかもしれんけど一応 基本的には社内のADサーバでGPO管理してる奴にEdgeのIEモードのサイトリストに追加してもらう これは君の担当以外にもIEモードのサイトは糞の山程あって既知の対応だからおそらく追加を依頼するだけでいいはず うまくすればそれだけで作業が終わる可能性もある
773 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:35:09.37 ID:vtMigryt0.net] >>757 コメントの書式があったって書式から逸脱する文字列を入れてパースエラー出す未来しか見えんわ。
774 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:46:06.22 ID:GXvqERSA0.net] たぶんIEを前提とした目の前にあるコードを読み解いて作り直すより設計書用意したほうが早い あるいはAIと二人三脚
775 名前:751 [2023/03/19(日) 19:54:47.83 ID:/GeuLHtL0.net] みなさまありがとうございます IEモードは1,2度調べて、いつまでこのモードがあるか分からないからと止めたのですが、 やはり時間稼ぎも考えるとこれしかなさそうです。 その間に根本的な解決策を探したいと思います。 なぜか年明けから会社のDX担当にされました。 と言いましたが、実はそれは嘘です。 年末にかけて社員が半分以上辞めて、残った人の中で一番詳しそうだったのが僕だったのです。 実は、サーバーサイドをいじらないといけないのだということは、薄々気づいていました。 でも、今動き続けているサーバーを触れる人が誰もいないのです。 僕も、SQLというものがある、という程度の知識しかないので、触る気にもなりません。 とりあえず夏のボーナスまで引っ張って、無理そうだったら自分も転職します。 今動いているものをうっかり壊したら、止められなくなりそうなので慎重にがんばります。 ありがとうございました。
776 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 19:55:19.68 ID:xryn/wmcd.net] >>757 怖いも何もパーサーがきっちり仕事してる証拠じゃないの? コメントを書きたいって需要に対してはJSON5やJSONCって派生規格があるから それらを検討するべき
777 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 20:23:01.76 ID:M92RK9ru0.net] 何が理由かは置いといて技術を含めた社員がごっそり半数も辞めてる状況だとその会社から賞与もまともには出ないだろう Edgeへの移行時期としてもかなり遅れてるし有給消化しつつ転職活動に専念した方がいいね
778 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 20:33:33.23 ID:M92RK9ru0.net] >>763 規格はあれど既存の環境に適用できるものではないのがな JSON
779 名前:として扱う前にJSONCとしてコメント抜く前処理でも通すか [] [ここ壊れてます]
780 名前:デフォルトの名無しさん mailto:sage [2023/03/19(日) 22:37:02.99 ID:SC8SOdGAd.net] >>765 パーサーにケチつけてるよりはその方が建設的でしょうよ
781 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 03:23:46.29 ID:iV2jn8x9a.net] >>740 VSCode の拡張機能では、 open in browser では、ローカルファイルアクセスになる。 この場合、CORS など、ブラウザの色々な制限がある file:///C:/Users/Owner/Documents/test/index.html 一方、Live Server では、 自分のPC 内にサーバーを立ててから、そこから配信されるので、テストしやすい 127.0.0.1:5500/test/index.html >>753 そういうのは、Excel, VBA, Access とかじゃないの? ベンチャー企業やプロのバックエンドは、Ruby on Rails だけど
782 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 04:02:42.23 ID:iV2jn8x9a.net] >>745 Promise.all/allSettled とか?
783 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 19:47:12.99 ID:PTBUy+ct0.net] chromeの拡張機能で、「ngWord.json」内のデータを「background.js」経由で「content_script.js」に格納しようとしていたのですが、上手くいきません。コードでおかしな点等あれば、ご教授頂けないでしょうか。 【background.js】 fetch('ngWord.json') .then(response => response.json()) .then(data => { // content_script.jsにデータを送信 chrome.runtime.sendMessage({ngWords: data}); }); 【content_script.js】 chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.ngWords) { const ngWords = message.ngWords; console.log(ngWords); // 受信したデータを表示 } });
784 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 19:56:51.89 ID:hUotJVz90.net] >>769 バックグラウンドからタブに送信するならchrome.tabs.sendMessageじゃないかな?
785 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 20:37:35.10 ID:PTBUy+ct0.net] >>770 「タブ」というのは、「content_script.js」のことでしょうか? だとすると「chrome.tabs.sendMessage(tabId: content_script.js, ngWords: data)のように書く感じでしょうか。
786 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 20:53:08.72 ID:mlA7fjwPM.net] 雑な方法としてはアクティブなタブに送ればいいんちゃう?
787 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:36:27.87 ID:hUotJVz90.net] >>771 そうです。background から content_script に送信する場合はchrome.tabs.sndMessage だったと思いますよ chrome.tabs.query({active:true,(tabs)=>{ chrome.tabs.sndMessage(tabs[0].id,{ ngWordsg:data }) }}) というような感じで
788 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:40:33.20 ID:xjtq7KFo0.net] 最初にコンテンツスクリプト側から何かメッセージ送れば バックグラウンド側のchrome.runtime.onmessage.addListenerのsender.tab.idでタブID取れるっしょ
789 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:49:32.93 ID:hUotJVz90.net] それならtab.id必要なくてsendResponseで返せるんじゃないかな?
790 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 21:53:15.40 ID:PTBUy+ct0.net] 【background.js】 fetch('ngWord.json') .then(response => response.json()) .then(data => { chrome.tabs.query({active:true,(tabs)=>{ chrome.tabs.sendMessage(tabs[0].id,{ngWords:data}) }); }; 【content_script.js】 chrome.runtime.onMessage.addListener((message, sender, sendResponse) => { if (message.ngWords) { const ngWords = message.ngWords; console.log(ngWords); } }); このように修正しましたが、上手く取得できないようです。
791 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 22:00:26.17 ID:hUotJVz90.net] そもそもngWord.jsonの中身とれてますか?ローカルファイルならweb_accessible_resources書いてchrome.extension.getURLで取るんじゃないでしょうか?
792 名前:デフォルトの名無しさん mailto:sage [2023/03/20(月) 22:04:38.80 ID:xjtq7KFo0.net] もしかしてスクリプト本当にそれだけなの? だとしたらcontent_script.js実行される前にbackground.js終わってそう