てがろぐ - Fumy Otegaru Memo Logger -

お手軽一言掲示板(この辺の文章は「管理画面」の「設定」内にある「フリースペース」タブから編集できます。)

■フリースペース: 編集

ここは、CGIの設定画面から自由に文章を入力して掲載できるスペースです。スキンを編集しなくてもCGI上から手軽に内容を変更できます(HTML使用可)。
動作サンプルです。◆他のスキン:標準スキン, 昔のツイッターっぽいスキン(ピンク版), 付箋型スキン, シンプル日記スキン, ジャーナル(日誌)スキン, ブログタイプスキン, チャットタイプスキン, 黒板スキンてがろぐCGIの配布ページに戻る

or 管理画面へ

No.2160

NO IMAGE にしし JavaScriptを使ってリンク先URLを動的に編集する手もあります。(先程の続き)

🌽Re:2158◆補足ですが、複数のスキンを並行して利用しているなど、「適用中のスキン名を維持したリンクを出力する必要がある場合もある」なら、>>2159 で示したように『一時適用中のスキンを維持できるリンクを出力する』項目のチェックを外す方法だと困りますね。その際は、JavaScriptを使って動的にURLを書き換える方法があります。要はリンク先URLの中からスキンを指定している記述(例では skin=skin-twitter )を削除できれば良いのですから、HTMLソースの中で『SSIで埋め込んだ部分』よりも(重要)に以下のようなJavaScriptソースを書いておくと良いです。
<script>
var targets = document.querySelectorAll("a");
targets.forEach(function(oneTarget) {
      var oldHref = oneTarget.getAttribute('href');
      var newHref = oldHref.replace('skin=skin-twitter', '');
      oneTarget.setAttribute('href', newHref);
});
</script>

このJavaScriptが実行されると、ページ内のすべてのa要素にあるhref属性値の中から「skin=skin-twitter」の文字列が削除されます。その結果、スキン指定を無視してデフォルトスキンで表示されるリンクになります。スキン名の部分(赤色文字)は適宜書き換えて下さい。#🌱豆知識

🌽補足1:
なお、すべてのa要素を対象にするのはちょっと無駄な処理が多いのではないか? と思われる場合には、上記ソースの2行目を、以下のように「class名で対象を限定する記述」に書き換えると良いです。
●ハッシュタグリンクだけを対象にする場合:var targets = document.querySelectorAll(".taglink");
●指定No.へのリンクだけを対象にする場合:var targets = document.querySelectorAll(".postidlink");

🌽補足2:
もしくは、SSIで埋め込んでいる領域を例えば<div class="umekomi">~</div>で囲んでいるなら、この範囲に含まれるa要素だけを対象にするよう以下のように書く方法もあります。
var targets = document.querySelectorAll(".umekomi a");
この方がすべてのリンクを1行で対象にできて、分かりやすくて楽な気もします。

🍿蛇足:
補足というか蛇足ですが、もし「別のスキンを適用した状態」にリンクを書き換えたいなら、5行目のoldHref.replace('skin=skin-twitter', '');部分を、oldHref.replace('skin=skin-twitter', 'skin=skin-sakuratan');のように書き換えれば、skin-sakuratanが適用されたリンクに差し替わります。

動作サンプルです。 ご自由にお試し下さい。パスワードguest管理画面もお試し頂けます。
■いま見ているスキンは「チャットタイプスキン」です。他に、 標準スキン昔のツイッターっぽいスキン(ブルー)昔のツイッターっぽいスキン(ピンク)付箋型スキンシンプル日記スキンジャーナル(日誌)スキンブログタイプスキン(タイトル付きブログっぽくできるスキン)、 黒板スキンがあります。
てがろぐCGIの配布・解説ページに戻る