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;'/>

主要特点是它使用 Blogspot 变量data:post.url作为用户可以“喜欢”的链接。不幸的是,最近 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-ecap,但我无法将变量data:post.url替换为正确的值 - 它实际上保持原样。

4

2 回答 2

3

格热尼奥。

这不会直接回答您的问题,但您可以使用

替换data:post.urldata: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:如果您想在 head 部分使用页面 url,请使用<data:blog.url/>not <data:post.url/>

UPD 2:但你为什么不使用window.location

于 2012-06-17T11:46:36.320 回答