How can I have a script in Blogspot template that

2019-07-28 03:34发布

I have the following Facebook iframe as part of the template:

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

The main feature is that it uses the Blogspot variable data:post.url as the link that the user can "Like". Unfortunately recently blogspot decided to redirect people to their local blospot addresses, so if you open example.blogspot.com in the UK, you will be redirected to example.blogspot.co.uk, and you can't see any likes of people from outside of the island.

The obvious fix is to make everyone like the main .com page, so I created a script to generate this iframe dynamically:

<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>

To make Blogspot accept it I had to html-ecape bits of it, but I can't get the variable data:post.url substituted to a correct value - it stays literally what it is.

2条回答
Summer. ? 凉城
2楼-- · 2019-07-28 04:00

To show Blogger variables you need to use <data:blog.varName/>.

So, in your case, instead of:

var thisUrl = "data:post.url";

You need to use:

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


UPD 1: if you want to use page url in head section, use <data:blog.url/> not <data:post.url/>.

UPD 2: but why you don't use window.location?

查看更多
等我变得足够好
3楼-- · 2019-07-28 04:20

Grzenio.

This does not directly answer your question but you can use

Replace data:post.url with data:post.canonicalUrl

This will mean that all your likes etc will use the .com version of your blog.

So you should not need to use any javascript etc.

查看更多
登录 后发表回答