[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
894
(2): (ワッチョイ 7e63-SF+K [153.218.139.115]) 2023/08/21(月)00:13 ID:v7lFaH3H0(1) AAS
【環境】Windows 11, Chrome最新版
【何をしたのか】PHPで動的に出力されたテキストに replace (new RegExp)
【エラーメッセージ】コンソールには何も出ません
【期待する結果】ページ内に複数生成される動的クラス内テキストを置換したい
【サンプルコード】
<p class="tx-body">おはようございます*2023.08.15</p><span clas="tx-date">0000</span>
<p class="tx-body">ごきげんよう*2023.08.20</p><span clas="tx-date">0000</span>



tx-dateクラスの中身をtx-bodyの*以降の文字列に置き換えたく、以下を<body>の後半に書きましたが期待する置換変化が起きません、エラーも出ません、
省12
895: (スッップ Sdca-jTH6 [49.98.168.137]) 2023/08/21(月)11:40 ID:cB09UaOod(1/2) AAS
>>894
まずconsole.log()や開発者ツールを使って自分の書いたコードがどこまで想定通りに動いてるか確認してみよう
896: (ワッチョイ 534b-ubuk [110.2.215.28 [上級国民]]) 2023/08/21(月)11:51 ID:7Ts4WfMN0(1) AAS
>>894
コードを見る限り、置換を行うためのコードは一見正しく見えますが、複数の潜在的な問題が考えられます。まず、コード内のいくつかのポイントをチェックしてみましょう。

1. **クラス名のスペル**: `tx-date` クラスが正しく `x-date` クラスになっているか確認してください。

2. **期待する置換変化の確認**: 期待する置換変化がどのようなものか確認してみてください。コード内で `tDate` の内容を `console.log()` を使って出力し、実際の値が正しいか確認できます。

3. **変数 `replaceDate` の設定**: `tBody.split("*")[1]` の部分で、正しい位置に `*` が存在しているか確認してください。`split()` メソッドは対象の文字列を指定の文字で区切って配列にしますが、もし `*` が存在しない場合、期待通りの結果が得られない可能性があります。

4. **置換操作の適用**: `tDate` に対して行った置換操作が、実際のDOM要素に反映されていない可能性があります。`tDate` の内容を変更した後、対応するDOM要素の内容を更新するコードが不足しているようです。
省1
897: (スッップ Sdca-jTH6 [49.98.168.137]) 2023/08/21(月)12:25 ID:cB09UaOod(2/2) AAS
このワッチョイ **4bは質問スレにchatGPTの回答貼るだけのボットみたいなもんだからスルー推奨
NG入れといてもいい
898: (アウアウウー Sa7f-7wIC [106.133.165.90]) 2023/08/22(火)23:04 ID:rPfWctd8a(1/2) AAS
2か所とも、clas="tx-date" になっている!

class でしょ
899: 898 (アウアウウー Sa7f-7wIC [106.133.165.90]) 2023/08/22(火)23:12 ID:rPfWctd8a(2/2) AAS
>const ItemDate = document.getElementsByClassName("x-date");

x-date は、tx-date じゃないの?
900
(1): 898 (アウアウウー Sa7f-7wIC [106.133.165.90]) 2023/08/23(水)00:10 ID:B78POXf5a(1) AAS
一旦、要素 tDate_elem を取得しておいてから、
その textContent に値を設定する。
つまり更新

const tBody = ItemList.item(i).textContent;

const tDate_elem = ItemDate.item(i) // 要素
const tDate = tDate_elem.textContent;
console.log( tDate ); //=> 0000

const replaceDate = tBody.split("*")[1];
console.log( replaceDate ); //=> 2023.08.15

tDate_elem.textContent = replaceDate; // 設定
省5
901: (スプッッ Sd6a-jTH6 [1.75.209.193]) 2023/08/23(水)10:39 ID:oZ78uDd8d(1) AAS
>>900
それはもう質問に答えたというよりデバッグと修正を代行したのであってこのスレの主旨には合わない
おそらく他の人もそういう認識だからこの件に口を出さないんだと思うよ
902: 898 (アウアウウー Sa7f-7wIC [106.146.101.215]) 2023/08/23(水)19:53 ID:ktllvUDta(1) AAS
jQuery なら、もっと簡単

$( function ( ) {

$('.tx-body').each(function (index, elem) {
const tx_body = $(elem);
console.log(index + ': ' + tx_body.text());
const replaceDate = tx_body.text().split("*")[1];
console.log(replaceDate);

// tx_body 要素の次の兄弟で、tx-date クラスがある要素。絞り込み
const tx_date = tx_body.next('.tx-date');
console.log(index + ': ' + tx_date.text());
省7
903
(1): (アウアウエー Sa22-NwC7 [111.239.174.98]) 2023/08/25(金)21:08 ID:+90wXQAMa(1) AAS
chrome拡張どう作ったらいいのでしょう?
こんな感じではリダイレクトが連続してしまってだめでした
urlsのフィルターの仕方、もしくはリダイレクトをせずにそのURLにアクセスする方法が分かれば解決できるとは思うのですが・・・

//aaa.com/xxxx/ へのアクセスを aaa.com/abc/xxx/ へ変換したい (以下は動作しない)
chrome.webRequest.onBeforeRequest.addListener(
function(details)
{
if (details.url.match(/abc/))
{
return {}; //←ここを書き換える方法が分かればいける
省12
904: (アウアウウー Sa47-rTQJ [106.146.72.134]) 2023/08/26(土)04:11 ID:wsJDYSi/a(1) AAS
「chrome.webRequest.onBeforeRequest」で検索!

webRequest
外部リンク:developer.mozilla.org
905: (アウアウエー Sa5f-/No0 [111.239.174.98]) 2023/08/26(土)12:48 ID:mvAl1l0Ba(1/2) AAS
そこ見てどうすればいいのか分からないからここに来た・・・
906: (スッップ Sd9f-oH/7 [49.98.169.249]) 2023/08/26(土)17:41 ID:/LQp1jGld(1) AAS
return detail.documentUrl

とか?
907: (アウアウエー Sa5f-/No0 [111.239.174.98]) 2023/08/26(土)18:56 ID:mvAl1l0Ba(2/2) AAS
return detail.documentUrl;
return {redirectUrl: detail.documentUrl};
どちらもダメ。リダイレクトのURLを返すことになるから、リダイレクトの無限ループに入っちゃう

それなら、リダイレクト止めればいいじゃんって思うんだけど
return {cancel: true};
のようにするとナビゲーション自体が止まってアクセスできなくなっちゃう
908: (ワッチョイ cf8a-cMf3 [153.207.237.45]) 2023/08/26(土)19:46 ID:HE/rWC1F0(1) AAS
空のオブジェクト返せばいいんじゃないの?

こんなの見て参考にしては?
外部リンク[js]:gitlab.com
909: (ワッチョイ e361-NWkk [180.15.228.252]) 2023/08/26(土)21:15 ID:AeqeuiS+0(1) AAS
無限ループしてるって事は条件分岐失敗してるんじゃないの?
console.logデバッグでもしてみたら?
910: (オッペケ Sre7-bab6 [126.212.162.196]) 2023/08/27(日)12:33 ID:QiCv/PxZr(1) AAS
>>903
リダイレクト後のurlに?foo=barとかクエリ文字列付けてみるとかは?
これでフィルタにかからなくなるみたい
もちろんこれでサーバが誤動作起こさないのが前提だけど
911
(1): (ワッチョイ cf63-n242 [153.218.137.10]) 2023/09/03(日)21:37 ID:0BSqvC2P0(1) AAS
サイト内にフォームが設置してあるページが複数あります
お問い合わせ、新規登録、ログイン、パスワードリマインド、などです
一時的に inputタグを入力不可にしたのですが
querySelectorAll("input,button").forEach( e => e.disabled = true );

複数あるページのうちお問合せだけは入力できるように、
現在は下記の効率の悪い記述になっています、、
document.querySelectorAll("#contact input, #contact button").forEach( e => e.disabled = false);

それぞれのページの<body>に idを付与していてそれで判別しているのですが
<body id="contact">
<body id="login">
省3
912
(2): (ワッチョイ 4327-g4sH [164.70.253.210]) 2023/09/03(日)21:48 ID:qR1Ry2o90(1) AAS
【環境】windows10 chrome 最新版
【何をしたのか】開発ツールコンソール上でサンプルコードを実行すると
条件文が undefined にもかかわらず if 文内 console.log(1) が実行される
【エラーメッセージ】なし
【期待する結果】 なぜこうなるのか理由が知りたいです
【サンプルコード】
console.log(localStorage && (localStorage.getItem('deck')));
if(localStorage && (localStorage.getItem('deck'))) console.log(1)
if(undefined) console.log(2)
913
(1): (ワッチョイ 8361-yzHn [180.15.227.160]) 2023/09/03(日)23:01 ID:zsKKxMoe0(1) AAS
>>912
console.log(localStorage && (localStorage.getItem('deck')));
の結果は本当にundefined?、undefinedの上の行に何か表示されてるよね?
1-
あと 89 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.012s