我在博客博客上使用了一个脚本,该脚本使用带有上一个和下一个按钮的外部源图像。该脚本包含currentUrl函数,用于在单击下一个或上一个按钮时创建页面展示。
我想添加facebook分享按钮,这样可以让用户分享他们正在查看的图片,但我相信它无法完成,因为我试图复制粘贴地址栏上的链接(由于facebook上的currentUrl函数但它无法检索与url关联的图像,是否可以对脚本进行任何更改以便图像可以共享社交媒体? 非常感谢帮助。 感谢
HTML代码:
<body onload="showPicNo(a)">
<div id="picture"><img name="picturegallery"></div>
<div id="navigation">
<a href="javascript:bw()">previous</a> | <a href="javascript:fw()">next</a>
</div>
<body>
javascript代码:
var pics=new Array ("http://4.bp.blogspot.com/_UdzqQpb36Jo/R9kVS0h1BFI/AAAAAAAAD_o/SRGugAQSF0A/s1600/timming_pictures_37.jpg","https://lh3.googleusercontent.com/-et1BbdI-Dqk/UbM0JNa5VSI/AAAAAAAAAdw/cd6yN5HWvmc/s480-no/Funny+Lady+French+Kiss+With+Lion.jpg","https://lh3.googleusercontent.com/-pSwjTBzFDM0/UbMukN2vTbI/AAAAAAAAAbc/ZMLSTtO-JUk/w460-h511-no/funny-pictures-auto-woman-boobs-477558.jpeg")
var a=0;
var b = pics.length;
var currentUrl = document.URL;
var existsPicParameter = currentUrl.match(/picnoparam\S*/i);
var tmpPicParameter, tmpPicParameterOld;
if (existsPicParameter != null)
{
tmpPicParameter = existsPicParameter[0].match(/picnoparam=\d+/i);
if (tmpPicParameter != null)
{
a = parseInt(tmpPicParameter[0].match(/\d+/i));
tmpPicParameterOld = tmpPicParameter[0];
}
} else {
a = Math.floor(Math.random() * (b - a)) + a;
}
function fw()
{
if (a == (b - 1))
{
a = 0;
} else {
a++;
}
navigate(a);
}
function bw()
{
if (a == 0)
{
a = b - 1;
} else {
a--
}
navigate(a);
}
function navigate(a)
{
if (existsPicParameter == null)
{
if (currentUrl.indexOf("?") == -1)
{
currentUrl += "?";
} else {
currentUrl += "&";
}
currentUrl += "picnoparam="+a;
} else {
tmpPicParameter[0] = tmpPicParameter[0].replace(/\d+/i,a);
currentUrl = currentUrl.replace(tmpPicParameterOld,tmpPicParameter[0]);
}
window.location.replace(currentUrl);
}
function showPicNo(picNumber)
{
window.document.images["picturegallery"].src=pics[picNumber];
}
function randomPicture()
{
erg = Math.floor(Math.random() * (b - a)) + a;
showPicNo(erg);
}
答案 0 :(得分:0)
我将functionaly添加到原始源代码中。回到主题:
基于How does the Facebook 'share' button on Stack overflow work?我认为源代码有效,但不是预期的。
如果您阅读提供的主题,您将找到以下句子:
Facebook会解析该页面并抓住它找到的前几张图片
这就是为什么你无法在Facebook上看到所选图片的原因。然后,如果Facebook解析给定的网站,它将找到一个空的图像标签。首先,javascript指定-at运行时 - 图片贴在此处。 Facebook网站解析器太迟了。另外他无法执行插入的Javascript 。
并为我的问题提供解决方案?在我眼里..不是为了纯粹的客户端图片展示。您必须接受只有静态图片才能用作Facebook上的图标。
P.S。:每个人都被告知我错了。我渴望学习新事物。
答案 1 :(得分:0)
您需要使用Facebook Javascript SDK来执行此操作。 - 这是一个简单的共享课程,我用它来简化这一过程。 https://github.com/DrewDahlman/Social-Sharing