<a href="http://www.linkedin.com/shareArticle?url=MY_URL" class="in-share-button" target="_blank">
<img src="my_img" alt="linkedin share button" title="Share on Linked In" /> </a>
这是我目前的分享按钮。我想让它分享当前在地址栏中的网址,而不是像atm那样固定的预设网址。
我找到了
<?php $url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; echo $url; ?>
什么似乎符合我的需要。但是当我用这个改变“MY_URL”时,它只是创建了一个指向我网站主页的链接。
它应该显示的URL看起来像“www.myurl.de/#/id_of_a_post”。 我觉得#是问题所在。 。 。
你可以给我任何帮助吗?答案 0 :(得分:1)
您无法在服务器端代码中读取URL的哈希部分。 #后面的部分永远不会被浏览器发送到服务器。因此,如果您尝试使用PHP解决此问题,则无法获得您期望的行为。
看起来您依靠静态链接来执行共享。我只能回复Google+,但有了Google+,您有两种选择:
使用Google+ widget而不是静态链接,并且不指定HREF参数:
<div class="g-plusone" data-annotation="none"></div>
<!-- Place this tag after the last +1 button tag. -->
<script type="text/javascript">
(function() {
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
})();
</script>
如果未指定href并且您未指定规范URL,则窗口小部件将恢复为默认为来自document.location.href
的URL值,该值将是访问者的当前页面,包括哈希部分网址。
使用JavaScript重写链接中的URL以附加当前的哈希位置,例如,假设您将所有社交链接放入带有“共享”类的div中,然后您需要修改所有使用jQuery在该div中进行href:
var hash = document.location.hash;
// Loop through each link in the sharing div
$('.sharing a').each(function(){
// Append the hash to the end of each already populated URL
$(this).attr('href', $(this).attr('href') + encodeURIComponent('#' + hash));
});
答案 1 :(得分:1)
它只是另一种方式。
我的朋友创建了一个脚本,用于保存各个帖子的ID:
(function(){
var numbers = document.URL.match(/\d+/g);
if(numbers != null){
$('#right-col').addClass('shown').removeClass('hidden');
$('#left-col').addClass('colPositioning');
$('#right_'+numbers).addClass('shown1');
;}
}());
之后我可以使用:
<a href="https://twitter.com/share?url=my_url/%23/?p=<?php the_id();?>" class="twitter-share-button" target="_blank"><img src="img_src"></a>
关于它的诀窍是将#替换为“%23”。我认为它叫做encodedURI。
你们对这个解决方案有什么看法?
答案 2 :(得分:0)
分享可能无法完全按照您的想法运作。您正在使用URL的锚点部分链接到页面上的特定位置,并可能使用一些javascript来处理它并加载新的或不同的信息,或显示/隐藏页面的其他部分,具体取决于值那个锚。
虽然这适用于访问您网站的用户,但对于访问您网站的漫游器(例如Facebook和Google+使用的漫游器,虽然我不知道Linkedin是否也这样做)也不适用获取要显示为预览的一小部分信息。因此,虽然链接本身可能有效,但网站上显示的预览几乎肯定不会反映锚定URL的内容。