CSS スプライトはページの HTML では機能しますが、Javascript では機能しませんか?
http://www.spyka.net/scripts/javascript/easy-social-bookmarksをインストールし、CSS スプライトを追加してサーバー呼び出しを最小限に抑えようとしています。
以下のようなスタイルシートを作成しました。
<style type="text/css">
<!--
.i_blinklist
{
width:21px;
height:21px;
background-repeat: no-repeat;
background-image: url(img_socialsprites.jpg);
background-position: 0 0;
}
.i_blogmarks
//-->
</style>
このコードは、ページの HTML で次のように機能します。
<div class=i_blinklist></div>
このようにJavaScriptに追加すると、機能しません:
sites[0] = new Array('http://blinklist.com/index.php?Action=Blink/addblink.php&Url={url}', 'Blinklist', '<div class=i_blinklist></div>');
スクリプトに影響を与える可能性のあるスクリプトの主な動作は次のとおりです。
function swgbookmarks()
{
for(i = 0; i < sites.length; i++)
{
var g = sites[i];
var u = g[0];
u = u.replace('{url}', escape(window.location.href));
u = u.replace('{title}', escape(window.document.title));
var img = (imagepath == '0') ? '' : '<img src="'+g[2]+'" alt="'+g[1]+'" /> ';
var k = '<a href="'+u+'">'+img+g[1]+'</a> ';
window.document.write(html_before+k+html_after);
}
}
どんなアイデアや助けも大歓迎です。
ありがとうございました。
アップデート:
私はこれで遊んでいて、ついにそれが機能するようになりました:o)
これが私が行った変更です。
ソーシャル ブックマークと画像の JS コード:
sites[0] = new Array('http://blinklist.com/index.php?Action=Blink/addblink.php&Url={url}', 'Blinklist', 'socialsprite social blinklist');
スクリプトのベースからの JS コードは次のとおりです。
function swgbookmarks()
{
for(i = 0; i < sites.length; i++)
{
var g = sites[i];
var u = g[0];
u = u.replace('{url}', escape(window.location.href));
u = u.replace('{title}', escape(window.document.title));
var img = (imagepath == '0') ? '' : '<img src="transparent1x1.gif" class="'+g[2]+'" alt="'+g[1]+'" /> ';
var k = '<a href="'+u+'">'+img+g[1]+'</a> ';
window.document.write(html_before+k+html_after);
}
}
CSS スタイル シートのコードは次のとおりです。
<style type="text/css">
<!--
.socialsprite {background:url(img_socialsprites.jpg);}
.social {height:22px;}
.social {width:22px;}
/* Social Images */
.blinklist {background-position:0px 0px;}
.blogmarks {background-position:0px -22px;}
これは機能しているようです。
私は今これを機能させています。
下部にあるメインの投稿の更新を参照してください。
このサイトでは数時間自分の回答を投稿できなかったので、そこに更新を書きました。また、誰かの時間を無駄にしたくありませんでした。
建設的なコメントをありがとう、彼らは大いに役立ちました。