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) 時にはあなたが望む「答え」だけでなく、「意見」などが寄せられる場合もあります。
0273Name_Not_Found
垢版 |
2022/07/22(金) 21:45:39.09ID:???
>268
>269
>271もかな。
ありがとうございます。

>269の発想はJavaScriptに慣れてないとできそうじゃないねえ。
勉強になりました。参考にさせていただきます。
0274271
垢版 |
2022/07/22(金) 23:10:42.75ID:???
JavaScript は難しすぎる。
バグってばかりで、アホらしい

漏れは、Ruby, jQuery ぐらいしか書けない
0275Name_Not_Found
垢版 |
2022/07/23(土) 00:06:45.72ID:???
言語とライブラリを混同してる時点で理解不足としか
0276Name_Not_Found
垢版 |
2022/07/23(土) 03:29:16.41ID:FClyRvyS
疑似的に、sablimeTextとか、VisualStudioCodeを模して
ソースコードに対して、キーワード毎に色付けるような、
javascriptのパッケージてないですか?
0277Name_Not_Found
垢版 |
2022/07/23(土) 04:01:34.90ID:???
すいません。わかりづらいので修正。
ソースコードに対して×
htmlに書かれた、スニペットに対して〇
0279Name_Not_Found
垢版 |
2022/07/23(土) 14:30:30.90ID:???
ありがとうございます。まさにそれです。
0280Name_Not_Found
垢版 |
2022/07/27(水) 14:20:46.26ID:4QcDaVi1
これで音がなるのですが、zingle.mp3は10秒程度の長さです。
3秒ぐらいで音をストップさせるにはどうすればいいですか?
const sound_c = new Audio('sound/zingle.mp3');
sound_c .play();
0281Name_Not_Found
垢版 |
2022/07/27(水) 14:34:05.59ID:???
setTimeout()で解決しました。おさわがせしました。
0282Name_Not_Found
垢版 |
2022/08/03(水) 18:48:40.22ID:Nj6BOTMG
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js";></script>
<title>サンプル</title>
</head>

<body>
<input type="button" value="再生" id="button">
<script>
if ($('#button').val() === "再生"){
$('#button').click(function() {
console.log($('#button').val());
console.log($('#button').val() === "再生");
console.log("再生をはじめました。");
$('#button').val('停止');
});
}
</script>

</body>
</html>
今すっごくハマっているところですが、input要素のvalue値を変化させると、ボタンをクリックさせないように設定しているのですが、
そんなの関係なしに、ボタンがクリックできてしまいます。
これは、どういった理由で変な処理が可能になっているのでしょうか?今後ハマらないためにどのような注意をすればよいでしょうか?
0283Name_Not_Found
垢版 |
2022/08/03(水) 20:01:54.34ID:Nj6BOTMG
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://code.jquery.com/jquery-latest.min.js";></script>
<title>サンプル</title>
</head>

<body>
<input type="button" value="再生" id="button">
<script>
var playing_flag = false;
if (playing_flag === false){
$('#button').click(function() {
console.log('ボタンが押された');
console.log(playing_flag);
$('#button').val('演奏中止');
playing_flag = true;
console.log(playing_flag);
// run();
});
}else{
console.log(playing_flag);
// reset();
}
</script>

</body>
</html>

flag用の変数を使ってもダメだった。どこで躓いているんだろ。。
0285Name_Not_Found
垢版 |
2022/08/03(水) 20:17:43.28ID:Nj6BOTMG
もちろん、もともとの目的は無効化なんだけど。
それより、
if(false){
実行A
}
の状態なのに、実行Aが実行されているのが気になって。
0287Name_Not_Found
垢版 |
2022/08/03(水) 20:23:51.02ID:Nj6BOTMG
お。
0288Name_Not_Found
垢版 |
2022/08/03(水) 20:27:15.89ID:???
そっかー。ありがとう。これに2時間悩んでたww
0289Name_Not_Found
垢版 |
2022/08/03(水) 20:32:11.88ID:Nj6BOTMG
いや。解決してない。
0290Name_Not_Found
垢版 |
2022/08/03(水) 20:36:38.79ID:Nj6BOTMG
<script>
var playing_flag = false;
if (playing_flag === false){
$('#button').click(function() {
console.log('ボタンが押された');
console.log(playing_flag);
$('#button').val('演奏中止');
playing_flag = true;
console.log(playing_flag);
// run();
});
}else{
console.log(playing_flag);
console.log('2回目はこっちが押されるはずでは?');
// reset();
}
</script>
1回目のクリックは、if文の実行で問題ないのだけど。
2回目のクリックは、else文を実行するのでは?
0291Name_Not_Found
垢版 |
2022/08/03(水) 20:48:32.41ID:Nj6BOTMG
<input type="button" value="再生" id="button">
<script>
var playing_flag = false;
const btn = document.getElementById("button");
var run = () => {
console.log(playing_flag);
console.log("再生中");
playing_flag = true;
};
var reset = () => {
console.log(playing_flag);
console.log("停止");
playing_flag = true;
};

if (playing_flag === false) {
btn.addEventListener("click", run, false);
} else {
btn.addEventListener("click", reset, false);
}
</script>

jQueryが悪いのかと思って、イベントリスナーでクリックしてみたけど。
やっぱり2回目のクリックでelse文を実行しない。
なんか、おれ勘違いしてる????
0292Name_Not_Found
垢版 |
2022/08/03(水) 20:52:18.36ID:Nj6BOTMG
ちょっと訂正。

var reset = () => {
console.log(playing_flag);
console.log("停止");
playing_flag = true;
};

var reset = () => {
console.log(playing_flag);
console.log("停止");
playing_flag = false;
};
0293Name_Not_Found
垢版 |
2022/08/03(水) 20:53:44.88ID:???
その2回通ると思い込んでるif文はイベントハンドラでも何でもないんだからボタン押される前の1回しか通らないよ
0294Name_Not_Found
垢版 |
2022/08/03(水) 21:00:45.56ID:Nj6BOTMG
え。意味がよくわからない。イベントハンドラじゃないから、1回しかとおらない。。??
0295Name_Not_Found
垢版 |
2022/08/03(水) 21:13:35.85ID:Nj6BOTMG
ずっとコードを眺めてみたら、
>>290のコードは確におかしいことは分かってきた気がする。
0296Name_Not_Found
垢版 |
2022/08/03(水) 21:37:07.14ID:???
>>291,292のコードも、イベントリスナー使ってますけど。
2回クリックしてもelse文にはならず、if文を2回実行しているのでしょうか?
0297Name_Not_Found
垢版 |
2022/08/03(水) 21:56:45.64ID:Nj6BOTMG
playing_flag = false;
var run = () => {
if(playing_flag === false){
console.log(playing_flag);
console.log("再生中");
playing_flag = true;
}else{
reset();
}
};
var reset = () => {
console.log(playing_flag);
console.log("停止");
playing_flag = false;
};

const btn = document.getElementById("button");
btn.addEventListener("click", run, false);

納得いかないけど、>>291,292を上のように変えたら、
期待した通りに動いた。
ボタンの状態に、フラグをつけて、実行に条件を入れるときは注意しないと
いけんのかもなあ。
0298Name_Not_Found
垢版 |
2022/08/03(水) 22:04:04.33ID:???
納得いかない、ねえ?
開発者ツールでどういう順番でどの行の処理がされるか確認したらいいんじゃないかな
0299Name_Not_Found
垢版 |
2022/08/03(水) 22:07:55.84ID:Nj6BOTMG
あ。そうですね。アドバイスありがとうございます。
0300Name_Not_Found
垢版 |
2022/08/03(水) 22:12:13.92ID:???
>>297
むしろ、>>291でフラグ立ててイベントハンドラ振り分けてるのが最高に意味不明なんだが
イベント駆動について勉強してみたら?
0301Name_Not_Found
垢版 |
2022/08/03(水) 22:42:39.79ID:Nj6BOTMG
よくわかってなかったようだ。
下の認識でOKですか?雑ですが。。
「Javascriptはブラウザが開いたとき、上の行から下の行へ基本一回だけ実行する。
しかし、イベントが起きたら例外的にその箇所を実行する。」
0302Name_Not_Found
垢版 |
2022/08/04(木) 02:45:36.83ID:???
>>301
HTMLスクリプト要素のdefer属性(DOMContentLoadedからの実行)とasync属性(HTMLScriptElement#onloadからの非同期実行)
0303Name_Not_Found
垢版 |
2022/08/04(木) 03:10:03.94ID:jGEKnkMs
>>302ありがとうございます。詳しく調べてみます。

>>291,292を
開発者モードでトレースしてみたのですけど。
ボタンをクリックすると、直前の条件の評価をせずに、
いきなりrun()の中を実行はじめました。
カレントの変数を無視して、初回時の条件が適応されているようです。

多分。疑問に思う方が変なのかもしれませんが、これは慣れですかね。。
0304Name_Not_Found
垢版 |
2022/08/04(木) 03:13:38.61ID:???
例えば、HTMLスクリプト要素にasync属性が指定してあると、次の二つは共に実行されない。
new Promise(addEventListener.bind(this, 'DOMContentLoaded')).then(e => console.log(e));
await new Promise(addEventListener.bind(this, 'DOMContentLoaded')).then(e => console.log(e));

例えば、次は1回クリックしたら次は無い。
new Promise(document.addEventListener.bind(document, 'click')).then(e => console.log(e));

>>301
これら当たり前過ぎる例を説明できますか?
今のJSは巨大なフレームワーク、1997年レベルから2022年レベルにするの大変だろうけど頑張ってね。
0305Name_Not_Found
垢版 |
2022/08/04(木) 23:22:36.77ID:???
>>297
>var playing_flag = false;
>if (playing_flag === false){ 処理 }

playing_flag が真偽値・bool 型なら、単にこう書けば?
if ( playing_flag )

基本、boolを比較してはならない。
すでに、boolになっているから
0306Name_Not_Found
垢版 |
2022/08/04(木) 23:38:01.22ID:???
jQuery のon で、任意の要素に、任意のイベントを追加できる

<button id="btn_1" class="btn btn-primary">
<span class="show-when-enabled">送信</span>
<span class="show-when-disabled">送信中...</span>
</button>

<button id="btn_2">送信ボタンをenable にする</button>

<style>
button .show-when-enabled { display: initial; }
button[disabled] .show-when-enabled { display: none; }

button .show-when-disabled { display: none; }
button[disabled] .show-when-disabled { display: initial; }
</style>

$( function ( ) {
$( '#btn_1' ).on( 'click', function ( event ) {
$( this ).prop( 'disabled', true ); // disable にする
} );

$( '#btn_2' ).on( 'click', function ( event ) {
$( '#btn_1' ).prop( 'disabled', false ); // enable にする
} );
} );
0307Name_Not_Found
垢版 |
2022/08/05(金) 02:46:29.55ID:???
もうjqueryスレと統合すべきだと思うの
両者の関連スレ合わせても勢い1すらないんだし
0308Name_Not_Found
垢版 |
2022/08/05(金) 07:46:34.74ID:???
jqueryを使わずにpure jsで、ていう質問も大いにありえるから
分けたほうがいいとおも
0310Name_Not_Found
垢版 |
2022/08/05(金) 08:35:50.13ID:???
どっちでも良い。
答える方としては、素のJS で書くのは非常に面倒

jQuery は可読性が高いので、読めない香具師はいないから、
ひとまず、jQueryで書いて、
それを質問者が書き直したければ、素のJSで書き直せばよい
0311Name_Not_Found
垢版 |
2022/08/05(金) 11:51:55.86ID:???
jQueryスレやプログラム板でもいわれてるが、今は統合とかテンプレ修正とか、意欲ある人がいない

+ JavaScript & jQuery 質問用スレッド vol.7 + [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/hp/1478002550/683-687
+ JavaScript の質問用スレッド vol.124 +
https://mevius.5ch.net/test/read.cgi/tech/1636525464/253

>>307も統合を示唆してるが、「やりたいなら、お前が責任持ってやれ」といわれてもやらないだろ?
昔の風潮なら俺も手を貸しただろうが、今はやる気が全く起きないわ
まともな感性で保守する人は皆無だし、jQuery信者は健在だし、俺一人でどうにかなる問題でもないからな
0312Name_Not_Found
垢版 |
2022/08/05(金) 12:17:08.84ID:???
jQueryスレはタイトル詐欺だから「jQuery質問用スレッド」にして
jQuery使わない人が迷い込まないようにすれば万事解決
0314Name_Not_Found
垢版 |
2022/08/05(金) 19:12:45.74ID:???
>>313
じゃ、タイトル詐欺スレを削除すれば解決だね
0315Name_Not_Found
垢版 |
2022/08/21(日) 11:50:33.80ID:5ThV/pZE
【環境】iOS Catalina 10.15.7,GoogleCrome104.0.5112.101
【何をしたのか】Editor.jsでデータを受け渡す方法について知りたいです。
【エラーメッセージ】そもそも方法がわからないのでエラー等は発生してません。
【期待する結果】Editor.jsで入力したデータを次のページで内容チェックし、更にMySQLへ登録したい。また、記事の編集の際にはMySQLからデータを読み出し、Editor.js上で編集したい。
【サンプルコード】このサイトとまったく同じ状態です。https://reffect.co.jp/html/block-styled-editor-js#i-2

勉強のため自作のブログ投稿用CMSを作成しています。
formとphpで基本的な記事投稿(入力→実際の表示確認→MySQL登録)、記事の再編集(MySQLからのデータ読み込み→投稿フォームへの再表示→編集→MySQL更新)は完成しました。

ただ、現状では画像や表、リストなどを挿入するときにいちいちhtmlタグを入れなければいけないことから、WYSIWYGのひとつEditor.jsを使ってタグを自動生成したいと思っています。

phpのときには教科書どおりinputにnameをつけてPOSTでデータを受け渡してましたが、Editor.jsではdivにテキストエディタを表示させることから、どうやってデータを受け渡すのかつまずいています。
上記サイトではボタンを押すとconsoleに取得データを表示していますが、ボタンを押すと実際の記事表示を確認できるようにしたいと思っています。

どのようなやり方があるでしょうか。お力を貸してください。
0316Name_Not_Found
垢版 |
2022/08/21(日) 16:41:06.34ID:???
>>315
console.logする代わりにデータ(JSON)を確認画面に渡して
確認画面側でEditorJSをreadonlyで表示するか
同じ画面でreadonly viewとedit viewとtoggleさせる(EditorJSのreadonly.toggle)

サーバーにPOSTするのはJSON
0317Name_Not_Found
垢版 |
2022/08/22(月) 08:46:09.58ID:???
Ruby on Rails では、WYSIWYG エディターは、

Railsの作者・DHH の会社である、Basecamp 製のtrix を使う
0318Name_Not_Found
垢版 |
2022/08/27(土) 23:04:43.45ID:???
もう終わりだよこの板も
0319Name_Not_Found
垢版 |
2022/08/28(日) 14:19:06.39ID:???
JavaScriptスレは荒らされる前は平和だったんだけどね
今は見る影もない
0320Name_Not_Found
垢版 |
2022/08/28(日) 21:46:17.13ID:???
今何とか機能してるのって愚痴スレとHTMLCSS質問スレとPHP質問スレがギリギリって感じか
語ることなんて特にないし仕方ないね
0322Name_Not_Found
垢版 |
2022/09/01(木) 22:47:44.67ID:???
HTMLスレは板基準にすれば進んでるよなぁ
まあ最初にやるのがそれってのもあるけど。
初学者がくるようになればこっちも盛り上がるんだろうな?なるよな?
0323Name_Not_Found
垢版 |
2022/09/01(木) 23:34:56.25ID:???
正直調べりゃ分かるからこっちに書き込むエネルギーなんて一々使わないだろってとこは思ってる
jsまで興味を持ったのなら調べるスキルっつーか知識欲も持ち合わせてるだろうし
その結果がこれよ
0324Name_Not_Found
垢版 |
2022/09/02(金) 00:35:32.25ID:???
>>321
PHPの質問スレは板が違う
まあ向こうも同じようなもんだけど
0325Name_Not_Found
垢版 |
2022/09/02(金) 01:00:03.80ID:???
javascriptもPHPもオワコン。
そしてプログラミングの初学者には難しすぎる

初心者はRubyから学習を始めるべき。
そしてRuby on Railsを習得すればPHPは不要

こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
 ↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/
0326Name_Not_Found
垢版 |
2022/09/02(金) 09:40:03.86ID:???
>>325
https://mevius.5ch.net/test/read.cgi/tech/1608837867/512
> 512 デフォルトの名無しさん (ワッチョイ 027c-5Ix7) sage 2022/08/19(金) 13:31:40.23 ID:Gwz5c/EG0
> Rubyガイジがこのスレに誘導しているみたいだけど
> 今更Rubyなんて流行らないし>>503でも指摘されているけど
> 新規案件でRubyやRailsなんて採用しないから初心者が勉強するだけ無駄だぞw
0327Name_Not_Found
垢版 |
2022/09/06(火) 13:50:31.39ID:???
RUNTEQ
【知らないと転職無理】未経験エンジニアの疑問全て回答!
www.youtube.com/watch?v=5IzjaC6vEg0

この動画では、Ruby on Rails から始めろと言っている

ウェブ系で最も使われているフレームワーク。
スタートアップでよく使われる

高速開発で、日本語の情報が多い
0328Name_Not_Found
垢版 |
2022/12/29(木) 12:19:48.08ID:???
JSで「日付が変わると自動で音が鳴る」というものを作りたいです。
0330Name_Not_Found
垢版 |
2023/01/01(日) 04:14:06.90ID:???
>>328
すいません
JavaScriptで日付が変わると自動で音が鳴るというものを作るにはどうしたらいいですか?
0334Name_Not_Found
垢版 |
2023/01/02(月) 18:52:30.50ID:???
>>325,331
4ヶ月前もRuvyスレ移行で受け入れられなかったのに、懲りない人だね
0335Name_Not_Found
垢版 |
2023/01/03(火) 15:44:37.55ID:???
画面遷移に伴って、リクエストヘッダを追加したいときどうすればいいか教えてください。

・1 サーバサイドで「Location」レスポンスヘッダを指定してリダイレクトさせるときに、
リダイレクト先アクセスにリクエストヘッダを添付させることは可能ですか?
・2 ブラウザ側で画面遷移するときに、リクエストヘッダをつけることは可能ですか?
<a>タグ、JavaScriptの「location.href」にリクエストヘッダ追加できますか?

・3 同じく<form>を飛ばすときにリクエストヘッダ付けられますか?

(補足)リクエストヘッダをつけるときに、思い浮かぶのはAjax, XHRを使うことですが、
これを使うと画面遷移は伴いません。
OAuthの勉強をしていて、アクセストークンをブラウザで保持して、それをAuthorizationヘッダーに
添付しないといけないことが分かったので、それをどうやってリクエストヘッダにセットするのかを調べています。

もしあるなら、その実装方法が載っているサイトが見つからなかったので教えてください。
0336Name_Not_Found
垢版 |
2023/01/03(火) 15:59:37.14ID:???
>>335

これを質問した者と同じ者ですが、解決方法が分かったかもしれないので書きます。
まず一度、認証情報なしでアクセスすると、
サーバ側が「401: Authorization Requed」ステータスを返してきて、
そこに「WWW-Authenticate」というレスポンスヘッダで認証が必要である指定が返ってくるので、
それが返ってくるとブラウザは自動でAuthorizationヘッダをセットして再アクセスするので、
サーバサイドは、401を返して、WWW-Authenticateヘッダをレスポンスするように実装しておいて、
一度401でわざと失敗させればよいため、最初から自分でAuthorizationヘッダを添付しなくてもいいのかもしれません。

しかし、ブラウザはそれで自動的に正しいアクセストークンを選んでくれるのでしょうか?
認証サーバ(IdP)から払い出されたアクセストークンをブラウザのローカルストレージか何かに保存しとくと思いますが、
それを適切に選んでくれるかが心配です。
0337Name_Not_Found
垢版 |
2023/01/03(火) 16:25:07.78ID:???
リダイレクト時にカスタムヘッダーを追加するのは無理

ブラウザがローカルストレージから自動的に特定のアクセストークンを取得してヘッダーに追加するようなことがあればセキュリティ的に大問題なのでこれも無理
(カスタムヘッダー無しのCookieだけでいいなら可能)

XHRで取得したレスポンス使ってクライント側JavaScriptで画面を更新する他ない
0338Name_Not_Found
垢版 |
2023/01/03(火) 16:31:47.61ID:???
>>337

そのクライアント側JavaScriptで画面を更新するときに、
Authorizationヘッダーを要求されませんか?
そもそも、アクセストークンを要求するのはデータ取得用のAPIだけにとどめておいて、
画面を描画するようなURLに対してアクセストークンを要求してはいけないということでしょうか?
0339Name_Not_Found
垢版 |
2023/01/03(火) 23:40:35.44ID:???
最近までAuthorizationヘッダーがそのままリダイレクトされてたみたいw
https://github.com/whatwg/fetch/pull/1544

HTTPの仕様的にはAuthorizationは削除したほうがいい的なことを書いてるのに・・・
Consider removing header fields that were not automatically generated by the implementation (i.e., those present in the request because they were added by the calling context) where there are security implications; this includes but is not limited to Authorization and Cookie.
https://www.rfc-editor.org/rfc/rfc9110#name-redirection-3xx
0340Name_Not_Found
垢版 |
2023/01/04(水) 00:34:28.00ID:???
Ruby on Rails では、Turbolinks を使って、
pjax(ajax と、historyAPI(popState, pushState))を利用して画面遷移する。
通信データを減らすために、body 部分しか変わらない

認証は、退屈な雛形を自動生成する
github.com/abhaynikam/boring_generators

Devise とか、Devise Omniauth(Facebook, GitHub, Google, Twitter)

一番分かりやすい OAuth の説明
qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be

基本、日本の未経験者用のバックエンドで採用しているのは、
YouTube で有名な雑食系エンジニア・KENTA の言う通り、Rails優先
0341Name_Not_Found
垢版 |
2023/01/04(水) 20:25:37.82ID:afahpZwg
>>339
XHRで非同期でリクエストヘッダを付けてサーバへ送信すると
サーバサイドでLocationヘッダーでリダイレクトすると次のリクエストにも暗黙的に前のリクエストヘッダーが引き継がれるのか?
なかなか複雑だな。


だけどXHRでリダイレクトが帰ってきても自動的には画面遷移しない。
ブラウザ側でlocation.hrefしないと画面遷移しないがこの時はさすがに非同期の戻りのリクエストヘッダは引き継げないだろ。

それと、クロスオリジンでリダイレクトする時もリクエストヘッダー引き継がれるの?
0342Name_Not_Found
垢版 |
2023/01/09(月) 18:06:47.49ID:???
初学者の者です



「Pixiv Filter」というChromeの拡張機能の話なんですけど、この拡張機能の一つに、Pixivの検索結果画面で、イラストごとの割り振られたタグを、本来は表示されない検索結果の画面で表示してくれるというものがある

この機能なんだけど、コード(GitHubで公開されている。URLはスパム対策で貼れない、申し訳ない)を読んでも仕組みがどうにも理解できなかった。
「イラストのURLに飛んで、そこからリンクを取得してくる」といったものかとも思ったが、どうやら違う模様

詳しい方いらっしゃったら、ご教授頂きたいです
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になって、レンダリングされた文字列を範囲選択出来なくなった?
レスを投稿する


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