[Redmine] 外部サイトへのリンクを新規ウィンドウで開く

  • このエントリーをはてなブックマークに追加
  • LINEで送る
この記事は 2020年10月5日 に書かれたものです

RedmineのチケットやWikiなどで外部サイト(Redmineとは異なるドメイン)へのリンクの場合、新しいウィンドウで開く設定を行います。

今回はView Customizeプラグインを利用して実装します。インストール方法などは以下の記事をご覧ください。


- Sponsored Link -

設定する

Redmine4.1で動作確認をしています。

パス・プロジェクトのパターン、挿入位置、種別

「パスのパターン」
.*
「プロジェクトのパターン」
全プロジェクに反映する場合は空欄に。
「挿入位置」
全ページのヘッダ
「種別」
JavaScript

コード

コード欄には以下のようなJavaScriptを入力します。

$(document).ready(function(){
  $("a.external").each(function(){
    // 別窓で開く
    $(this).attr("target", "_blank")

    // noopenerを追加する
    const rel = $(this).attr("rel")
    if( rel === undefined ){
      $(this).attr("rel", "noopener")
    }
    else{
      $(this).attr("rel", ["noopener", rel].join(" "))
    }
  });
})

Redmineでは外部へのリンクは自動的に<a class="external">といったようにexternalクラスが付与されているので、これを利用するのが楽チンです。最終的に以下のように変換されます。

<!-- Befor -->
<a hreh="https://google.com" class="external">Google</a>

<!-- After -->
<a hreh="https://google.com" class="external" target="_blank" rel="noopener">Google</a>

noopenerは詳細は端折りますがフィッシング対策などを目的として付与しています。またウィンドがガンガン立ち上がるのが嫌な場合は_blankの箇所をsubwindowなど適当な文字列に変更してください。

またREFERERを送出しない設定も同時にしておくと良いかもしれませんね。

コメント

コメント欄は休止中です。お問い合わせはこちらからどうぞ。ご質問はTwitterにリプを投げてください。

このブログを応援する

お寄せいただいたお気持ちは全額サーバ代や次の記事を執筆するための原資として活用させていただいております。この記事が参考になった場合などぜひご検討ください。

PayPal(ペイパル)
PayPalで300円支払う
※金額は任意で変更できます。
※100円でも泣いて喜びますw
※住所の入力欄が現れた場合は「no needed」を選択ください
これまでのご協力者さま
- Sponsored Link -