document.location.href的URL编码

时间:2010-05-04 16:26:50

标签: javascript facebook iframe

我正在构建一个iFrame并且正在使用document.location.href - >我的确切代码是:

<script type="text/javascript">
document.write("<iframe src='http://www.facebook.com/plugins/like.php?href=" + document.location.href + "&layout=standard&show_faces=false&action=like&font=verdana&colorscheme=light' frameborder=0></iframe>");
</script>

这对我的所有网页都很有用,除了一个。我相信一页的问题是由页面名称中的短划线“ - ”引起的。我的问题是 - 有没有办法对我的src进行不同的编码,以便链接有效?我希望它提取的CORRECT URL是:

[] /产品/产品%252dExample.html

但它吸引的是:

[] /产品/产品-example.html的

这导致页面无法正常工作。

谢谢!

2 个答案:

答案 0 :(得分:3)

encodeURIComponent功能可以满足您的需求。

<script type="text/javascript">
document.write("<iframe src='http://www.facebook.com/plugins/like.php?href=" + encodeURIComponent( document.location.href ) + "&layout=standard&show_faces=false&action=like&font=verdana&colorscheme=light' frameborder=0></iframe>");
</script>

答案 1 :(得分:2)

Facebook like buttons对目标页面的页面uri进行双重编码 所以获得你想要的东西是......

encodeURIComponent(encodeURIComponent(document.location.href))

哦,那些古怪的FB家伙。