我将以下Facebook iframe作为模板的一部分:
<iframe allowTransparency='true' expr:src='"http://www.facebook.com/plugins/like.php?href=" + data:post.url + "&layout=standard&show_faces=false&width=100&action=like&font=arial&colorscheme=light"' 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-ecape位,但我无法将变量data:post.url
替换为正确的值 - 它保持字面意义。
答案 0 :(得分:3)
Grzenio。
这不会直接回答您的问题,但您可以使用
将data:post.url
替换为data:post.canonicalUrl
这意味着您的所有喜欢等都将使用您博客的.com版本。
所以你不需要使用任何javascript等。
答案 1 :(得分:2)
要显示Blogger变量,您需要使用<data:blog.varName/>
。
所以,在你的情况下,而不是:
var thisUrl = "data:post.url";
您需要使用:
var thisUrl = "<data:post.url/>";
UPD 1:如果您想在头部使用页面网址,请使用<data:blog.url/>
而不是<data:post.url/>
。
UPD 2:但为什么不使用window.location
?