1

テンプレートの一部として、次の Facebook iframe があります。

<iframe allowTransparency='true' expr:src='&quot;http://www.facebook.com/plugins/like.php?href=&quot; + data:post.url + &quot;&amp;layout=standard&amp;show_faces=false&amp;width=100&amp;action=like&amp;font=arial&amp;colorscheme=light&quot;' frameborder='0' scrolling='no' style='border:none; overflow:hidden; width:576px; height:24px;'/>

data:post.url主な機能は、ユーザーが「いいね」できるリンクとしてBlogspot 変数を使用することです。残念ながら、最近 blogspot は人々をローカルの blospot アドレスにリダイレクトすることを決定したためexample.blogspot.com、英国で開くと にリダイレクトされexample.blogspot.co.uk、島の外からの人々のようなものを見ることはできません.

明白な修正は、誰もがメインの .com ページを好むようにすることです。そのため、この iframe を動的に生成するスクリプトを作成しました。

<script type="text/javascript">
document.write("<iframe allowTransparency='true' frameborder='0' scrolling='no' src='http://www.facebook.com/plugins/like.php?href=");
var thisUrl = "data:post.url";
var beginning = thisUrl.indexOf("blogspot")+9;
var end = thisUrl.indexOf("/", 15);
document.write(thisUrl.substring(0, beginning));
document.write("com");//change regional url to com
document.write(thisUrl.substring(end));
document.write("&layout=standard&show_faces=false&width=100&action=like&font=arial&colorscheme=light' style='border:none; overflow:hidden; width:576px; height:24px;'></iframe>");
</script>

Blogspot がそれを受け入れられるようにするには、その一部を html-ecape する必要がありましたが、変数data:post.urlを正しい値に置き換えることができません。文字通りそのままです。

4

2 に答える 2

3

グルゼニオ。

これはあなたの質問に直接答えることはありませんが、あなたは使うことができます

に置き換えdata:post.urlますdata:post.canonicalUrl

これは、すべてのいいねなどがブログの.comバージョンを使用することを意味します。

したがって、javascriptなどを使用する必要はありません。

于 2012-06-17T11:17:17.050 に答える
3

Blogger 変数を表示するには、 を使用する必要があります<data:blog.varName/>

したがって、あなたの場合、代わりに:

var thisUrl = "data:post.url";

以下を使用する必要があります。

var thisUrl = "<data:post.url/>";


UPD 1: ヘッド セクションでページの URL を使用する場合は、<data:blog.url/>notを使用します<data:post.url/>

UPD 2:しかし、なぜ使用しないのwindow.locationですか?

于 2012-06-17T11:46:36.320 に答える