質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

767閲覧

<title>タグの中身を書き換えたい

LUCIA

総合スコア20

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/09/22 04:52

こちらのブログのテンプレートを編集しています。
ブログリンク先

##取り組んでいること
記事の本文やタイトルにふりがなを振ることが多く、ふりがなを適用したい場所にclassを付与して以下のjavascriptを動かしています。

javascript

1 $(".story").each(function() { 2 $(this).html( 3 $(this).html() 4 /* 半角または全角の縦棒以降の文字をベーステキスト、括弧内の文字をルビテキストとします。 */ 5 .replace(/[\||](.+?)《(.+?)》/g, '<ruby>$1<rt>$2</rt></ruby>') 6 .replace(/[\||](.+?)((.+?))/g, '<ruby>$1<rt>$2</rt></ruby>') 7 .replace(/[\||](.+?)((.+?))/g, '<ruby>$1<rt>$2</rt></ruby>') 8 /* 漢字の連続の後に括弧が存在した場合、一連の漢字をベーステキスト、括弧内の文字をルビテキストとします。 */ 9 .replace(/([一-龠]+)《(.+?)》/g, '<ruby>$1<rt>$2</rt></ruby>') 10 /* ただし丸括弧内の文字はひらがなかカタカナのみを指定できます。 */ 11 .replace(/([一-龠]+)(([ぁ-んァ-ヶ]+?))/g, '<ruby>$1<rt>$2</rt></ruby>') 12 .replace(/([一-龠]+)(([ぁ-んァ-ヶ]+?))/g, '<ruby>$1<rt>$2</rt></ruby>') 13 /* 括弧を括弧のまま表示したい場合は、括弧の直前に縦棒を入力します。 */ 14 .replace(/[\||]《(.+?)》/g, '《$1》') 15 .replace(/[\||]((.+?))/g, '($1)') 16 .replace(/[\||]((.+?))/g, '($1)') 17 ); 18 });

ここは|概要《あらすじ》です のように書いたとき、【概要】の上に【あらすじ】とふりがなが振られています。

##現況
この方法を使って、

  1. 記事一覧ページのタイトル、概要(本文部分を使用)
  2. リンククリックして入った個別記事部分のタイトル、本文(追記部分を使用)
  3. 個別記事部分の下部に表示される【前の記事を読む】、【次の記事を読む】のリンク部分

にふりがなを適用することができました。

個別記事のサンプル

##改善したいこと
個別ページにアクセスした際、タブ型のブラウザ等で見ると、タブに出るページのタイトルがそのまま【ここは|表題《タイトル》です】となってしまっています。

これを、【ここは表題です】というように、ルビのない形で表示させたいのです。

##やってみたこと

  1. 他の箇所と同じように<title>タグを<div class="story"><div>ではさんでみる

→タブのタイトル自体が【ここは<ruby>表題<rt>タイトル</rt></ruby>です】になる(タグがそのままテキスト化されて表示)

  1. タイトルに 【ここは<ruby>表題<rt>タイトル</rt></ruby>です】のように直接タグ記述してみる

→タブ、記事タイトルともに【ここは表題タイトルです】になる

以上のような結果となり、うまくいきませんでした。

##ヒント?
表示されたページにて、ふりがなのついた部分をドラッグ選択してコピー→メモ帳等に貼り付けると、【ここは表題です】が取得できます。プレーンテキスト化されていると推測します。
この結果をうまくタブに反映できれば、まさに求めている結果になるのですが・・・。

お忙しい中恐れ入りますが、お知恵をお貸しいただければ幸いです。どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/09/22 05:39

元のHTMLには、<title>ここは|表題《タイトル》です</title>と書いてある、ということで間違いないですか?
LUCIA

2020/09/22 05:48

ソースを覗いてみました。 <title>ここは|表題《タイトル》です - 太陽と月の庭:ある家族のサロン</title>(-以降はブログ名です)となっています。 他のページも同じで、この形で書かれているものがjavascriptでルビ付きに変換され表示されているだけで、もとは間違いなく普通のテキストです。
LUCIA

2020/09/22 09:18

この方法を使って、解決しました! <script> var title = $("title").text(); var result = title.replace(/[\||](.+?)《(.+?)》/g, '$1') $("title").text(result); ここまででタイトルのルビ削除 ここからは個別で設定したい場合 $(function(){ $('.delruby').each(function(){ var txt = $(this).html(); $(this).html( txt.replace(/[\||](.+?)《(.+?)》/g, '$1') ); }); }); </script> アドバイス有難うございました! 本当はtwitterカードの表示も変えてみようと思ったのですが、いい案が見つかりませんでした・・・!
guest

回答2

0

Head内の<title>を書き換えたいということだと解釈しました。

js

1document.title=document.title.replace(//g, '').replace(/《(.*?)》/g, ''));

正規表現はあまり得意でないのでもっとスマートな書き方があるかと思います。

投稿2020/09/22 07:02

hatena19

総合スコア34075

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LUCIA

2020/09/22 09:17

この方法を使って、解決しました! <script> var title = $("title").text(); var result = title.replace(/[\||](.+?)《(.+?)》/g, '$1') $("title").text(result); ここまででタイトルのルビ削除 ここからは個別で設定したい場合 $(function(){ $('.delruby').each(function(){ var txt = $(this).html(); $(this).html( txt.replace(/[\||](.+?)《(.+?)》/g, '$1') ); }); }); </script> アドバイス有難うございました! 本当はtwitterカードの表示も変えてみようと思ったのですが、いい案が見つかりませんでした・・・!
guest

0

ベストアンサー

(質問を読み間違えていたので修正)

単純に.replace(/[\||](.+?)《(.+?)》/g, '$1')などとすればいいのでは?
(このコードでは全置換すると思うので「<title>タグの中だけ」という正規表現設定が必要そうですが)

投稿2020/09/22 05:31

編集2020/09/22 05:48
sakura_hana

総合スコア11427

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2020/09/22 05:40

やりたいことは、「【ここは表題です】というように、ルビのない形で表示させたい」とのことですが。
sakura_hana

2020/09/22 05:49

コメントありがとうございます。質問を読み間違えていたので修正しました。
LUCIA

2020/09/22 09:17

この方法を使って、解決しました! <script> var title = $("title").text(); var result = title.replace(/[\||](.+?)《(.+?)》/g, '$1') $("title").text(result); ここまででタイトルのルビ削除 ここからは個別で設定したい場合 $(function(){ $('.delruby').each(function(){ var txt = $(this).html(); $(this).html( txt.replace(/[\||](.+?)《(.+?)》/g, '$1') ); }); }); </script> アドバイス有難うございました! 本当はtwitterカードの表示も変えてみようと思ったのですが、いい案が見つかりませんでした・・・!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問