お蔵入り
プラグインの文字を画像に変えたい!
プラグインで使用している、カレンダー、最新記事、カテゴリーなどの表題を文字から画像に変えたいのですが、できますか??
2008-05-20 15:21の質問
この質問は、30日間解決しなかったために自動的に質問が一旦閉じられました。
Ads By Google
回答(1)
1.
2008-05-22 04:52:32

スクリプト
例えば、こんな感じ
で0から始めて1番目(つまり2番目、質問者のサイトでは、「Recent Entries」)を指定した画像で置き換える。
スクリプトは、置き換えるプラグインより後に置く必要がある。
デザインによって(class 名やidが)異なることに注意。
特に、新しいカレンダープラグインは、他のプラグインとタイトル表示がことなるので、この関数では置換できないし、数えない。
カレンダープラグインのタイトルは、同様にして特定すれば置換できるが、そうすると、現行のリンクの機能が失われてしまうが・(それはもちろん分かってるだろうけれども)
例えば、こんな感じ
<script type="text/javascript">
function getElementsByClass(searchClass,node,tag) {
var classElements = new Array();
if ( node == null )
node = document;
if ( tag == null )
tag = '*';
var els = node.getElementsByTagName(tag);
var elsLen = els.length;
var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
for (var i = 0, j = 0; i < elsLen; i++) {
if ( pattern.test(els[i].className) ) {
classElements[j] = els[i];
j++;
}
}
return classElements;
}
function replaceSideTitle(n, img_url){
var side = getElementsByClass("sidetitle", document.getElementById("sidecolumnbody"), "div")[n];
var img = document.createElement("img");
img.src=img_url;
side.replaceChild(img, side.firstChild);
}
replaceSideTitle(1, "画像のURL");
</script>
replaceSideTitle(1, "画像のURL");で0から始めて1番目(つまり2番目、質問者のサイトでは、「Recent Entries」)を指定した画像で置き換える。
スクリプトは、置き換えるプラグインより後に置く必要がある。
デザインによって(class 名やidが)異なることに注意。
特に、新しいカレンダープラグインは、他のプラグインとタイトル表示がことなるので、この関数では置換できないし、数えない。
カレンダープラグインのタイトルは、同様にして特定すれば置換できるが、そうすると、現行のリンクの機能が失われてしまうが・(それはもちろん分かってるだろうけれども)
回答レベル : アドバイス
できました!
いつもありがとうございます!
Ads By Google
コメント(3)
#1. BLUEPIXY
2008-05-21 04:27:19
CSS3 からは、スタイルシートでできるんじゃないかというようなことは聞いたことはあります。
CSS3が一般的ではない現状では、スクリプトによる置き換えでやるしかないと思います。(スクリプトを使えば可能)
#2. malipoza
2008-05-21 10:15:28
スクリプトを教えてもらえないでしょうか??
#3. BLUEPIXY
2008-05-22 14:58:48
どの程度書くのか、どの程度説明するのか
迷いましたが、
「できた」とのことなので、
結果、良かったデス。
プラグインタイトルを複数処理する時、
getElementsByClass で毎回検索するのが非効率的であるとするか、全体でなくプラグインだけである(getElementByIdは?)からヨシとするかは、ご自分で判断下さい。


