[過去ログ] JavaScript の質問用スレッド vol.125 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
60: デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226]) [sage] 2022/09/05(月) 18:51:10.83 ID:ng2JfbNn0(1/3) AAS
>>5050(3): デフォルトの名無しさん (ワッチョイ 9534-9i1j [14.14.181.44]) [sage] 2022/09/04(日) 09:22:10.61 ID:eAq4eNQY0(1) AAS
>>40
>>49
ありがとうございます。
テーブルの表示となっていて、行全体にリンクが設定されているようです。
以下のような記載が複数並んでおり、通常は左クリックでリンク先に移動しかできず、新しいタブで開くことができません。
<tr class=”〇〇〇” data-href=”★リンク先アドレス★” data-target=”〇〇〇”>
<td class=”〇〇〇”></td>
<td class=”〇〇〇”></td>
</tr>
素人ながらいくつかブックマークレットで試したのですが、逆に実行するとリンクが無効になる事が多々でした。
アドバイスをいただければ幸いです。
JavaScriptコードが不明なので正確な回答は不可能
>>58の想定通りなら、おそらくその実装が一番楽
tr要素ノードにclickイベントハンドラでwindow.openする実装と仮定して、下記実装が考えられる
1. elementdataset.hrefでリンク先アドレスを得る
2. createElementでa要素ノード生成
3. replaceChildで(A)のDOMになるよう調節
4. tr要素ノードの仕掛けられたであろうclickイベントハンドラをevent.stopImmediatePropagation()で封印
(A)
<tr class=”〇〇〇” data-href=”★リンク先アドレス★” data-target=”〇〇〇”>
<td class=”〇〇〇”><a href=”★リンク先アドレス★”></a></td>
<td class=”〇〇〇”><a href=”★リンク先アドレス★”></a></td>
</tr>
window.open()なんてレガシーコード書きたくないからあえてa要素を使っているが、
イベントを横取りできるなら、既存イベントハンドラと同じコードにしても良い
61(1): デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226]) [sage] 2022/09/05(月) 19:18:18.86 ID:ng2JfbNn0(2/3) AAS
>>59XPath式を使えば、textContentを使わなくて済む
外部リンク:jsfiddle.net
62: デフォルトの名無しさん (ワッチョイ 3501-bBdM [126.94.243.226]) [sage] 2022/09/05(月) 19:25:28.71 ID:ng2JfbNn0(3/3) AAS
>>61
テキストノードを子に持つ要素ノードを捕捉するコードにすればよかった
外部リンク:jsfiddle.net
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s