【スポンサーリンク】

[JavaScript]全選択で記事部分だけになるようにした

[JavaScript]全選択で記事部分だけになるようにした

自分のサイト内の記事全体を選択しやすいように、スクリプトを作りました。

\記事が役に立ったらシェアしてね/
【スポンサーリンク】

1. window.getSelection()

テーマのjavascript.jsに以下のコードを追加しました。

window.getSelection()
document.addEventListener('keydown', function(event) {
  if ((event.ctrlKey || event.metaKey) && event.key === 'a') {
    event.preventDefault();
    const articleElement = document.querySelector('article');
    const range = document.createRange();
    range.selectNodeContents(articleElement);
    const selection = window.getSelection();
    selection.removeAllRanges();
    selection.addRange(range);
  }
});

ユーザーがCtrlキー(またはMacではCommandキー)を押しながら ‘a’ キーを押すと、<article> タグで囲まれた記事の内容全体が自動的に選択されます。

  • document.querySelector を使って、<article> 要素を選択します。
  • 新しい範囲オブジェクトを作成し selectNodeContents() で記事要素の内容を範囲として選択します。
  • window.getSelection() で現在の選択オブジェクトを取得し、既存の選択範囲をすべて削除してから、先ほどの範囲を追加します。
window.getSelection()

これで記事をすばやく選択してコピーして、他の操作を行ったりすることができます。

2. user-select: none

これでも、記事内のウィジェット部分も含まれるので、style.cssに以下のコードを追加しました。

user-select: none
/** テキストウィジェットの文章をコピーの選択範囲から除外する 2024-05-24*/
.textwidget, .widget_text, .widget_toc, .blogcard-type, .entry-categories-tags, .sns-share{
   user-select: none;
}

CSSのプロパティuser-selectは noneにすると、ユーザーがその要素内のテキストを選択できなくなります。

こちらもどうぞ。
[PHP]ウェブページの内容を抽出するオンラインツールを作るには?
[PHP]ウェブページの内容を抽出するオンラインツールを作るには?
ウェブページから必要な記事を簡単に抽出するツールを作りました。 使い方は、URLを入力して「Extract Article」ボタンを押すだけで、記事内容が表示されます。 信頼できるソースのURLのみを使用し、個人利用や研究目的に限定してください。 ツールの使い方 インターネット上には膨大な情報があふれていて、必要な情報だけを見るのは大変な作業です。そこで、ウェブページから記事を簡単に抽出できるツールを作りました。 (ツール) ツールの使い方を具体的に説明しましょう。 まず、ウ...

[Cocoon] Amazonリンクに個別にPR表記をつける[CSS]
[Cocoon] Amazonリンクに個別にPR表記をつける[CSS]
ちょっと商品紹介をしたいとき 記事の中にちょっとAmazonの商品紹介を入れたいときがあります。記事全体がPRでもないので、記事先頭にPR表記を入れるのにも抵抗があります。 そういうときのために、Amazonリンクに個別にPR表記をつけるようにCSSを変更しました。 テーマのstyle.cssに以下のコードを追加しました。 /** Amazonリンクに個別にPR表記をつける 2024-05-01*/ .product-item-title::before { content:...

[WordPress] ブロックエディタで下線のショートカットキー(⌘U)が反応しなかった(プラグインの再有効化)
[WordPress] ブロックエディタで下線のショートカットキー(⌘U)が反応しなかった(プラグインの再有効化)
WordPressのブロックエディタで、下線のショートカットキー(⌘U)が反応しない不具合がありました。 いったんWordPressプラグインをすべて無効化して有効化し直すと、⌘Uがちゃんと動作するように戻りました。 WordPressプラグインも、一時的な不調でリセットが有効なことがあるんですね。 下線のショートカットキーが使えない? ブログ記事の装飾の仕方で、「主張を太字し、根拠に下線をつけると見やすい」という意見を見つけました。 これまでは強調のための太字しか使っていな...

[CSS] ブログの文字詰めを微調整した【letter-spacing と font-feature-settings】
[CSS] ブログの文字詰めを微調整した【letter-spacing と font-feature-settings】
ちいラボでは、なるべく「文字が見やすい大きさ」に設定しています。しかし、自分のスマートフォンで閲覧すると、一行の文字数が少ないために、改行が多すぎる気もしています。 そこで、文字の大きさをそのままに、「文字詰め」を狭めてみることにしました。 letter-spacing 全体的な字間をそのまま減らすには、letter-spacing に負の値を設定します(規定は0)。 letter-spacing: -0.05em; font-feature-settings に "palt...

[Cocoon] ソースコードハイライトが反映されない?【CSSセレクタ】
[Cocoon] ソースコードハイライトが反映されない?【CSSセレクタ】
なぜか、Cocoonのテーマ設定のソースコードが反映されませんでした。CSSセレクタを設定し直したら、うまく動きました。 highlight.jsが動作しない Cocoonテーマには、ソースコード ハイライト機能があります。これは、highlight.jsを利用しています。 しかし、Cocoon設定では、ちゃんとハイライト表示にチェックがつけたのですが、記事内のソースコードがそのままでした。 これまで うまくコードハイライトが表示されない原因は、「スクリプトの遅延処理などのほ...

[JavaScript]下にスクロールするとヘッダーメニューを半透明にするようにした
[JavaScript]下にスクロールするとヘッダーメニューを半透明にするようにした
Xのタイムラインを見ていたら、画面のメニューバーの透過度が上下のスクロールに応じて変化していることに気づきました。 少し下にスクロールすると半透明になり、少し上にスクロールすると元に戻っています。 自分のサイトのヘッダーメニュー(mobile-header-menu-buttons)でも、このような処理をするように、JavaScriptを作りたいと思います。 画面内の情報の表示範囲が増えるからです。 javascript.jsとstyle.css 機能 ユーザーがページを下に...
QRコードを読み込むと、関連記事を確認できます。

[JavaScript]全選択で記事部分だけになるようにした
【スポンサーリンク】
タイトルとURLをコピーしました