我正在尝试使用 JavaScript 动态设置共享到 Facebook 时显示的缩略图。我尝试将元标记“og:image”添加到页面(它是一个 JSP)并且可行,但我现在想做的是将此类图像替换为由 javascript 动态加载的另一个图像。
基本上,页面在加载时使用 JavaScript 调用 API,并检索图像列表。我想使用其中之一作为缩略图。
我尝试使用 javascript 来替换元标记的内容,但 Facebook 似乎并不关心它(如果我用浏览器检查它确实会改变)。
可以这样做吗?
提前致谢!
这是我用来从 flash 对象标签的 flashvars 参数中提取图像 url 的函数,然后使用 jquery 将其分配给元标签:
$(window).load(function(){
//Use $(window).load() instead of $(document).ready(), so that the flash code has loaded and you have all the html you need process with javascript already in place when you start processing.
var stringToExtractFrom = $('param[name="flashvars"]').attr('value');
//Get the flashvars parameter value which we'll use to extract the preview image url from.
var pos = stringToExtractFrom.indexOf("&");
//Search for the position ampersand symbols which surround the image url.
var stringToUse;
//The final string we'll use.
var startOfImageSrc = null;
//The first position where we discover the ampersand
var endOfImageSrc;
//The second position where we discover the ampersand
var lengthToSubstract
//How many symbols to chop off the flashvars value.
while(pos > -1) {
if(startOfImageSrc == null){
startOfImageSrc = pos;
}
else {
endOfImageSrc = pos;
lengthToSubstract = endOfImageSrc - startOfImageSrc;
}
pos = stringToExtractFrom.indexOf("&", pos+1);
}
stringToUse = stringToExtractFrom.substr(startOfImageSrc+7, lengthToSubstract-7);
$('meta[property="og:image"]').attr('content', stringToUse); });
Facebook 机器人从不运行 Java 脚本代码 但为什么你不尝试在服务器端设置 og 标签呢?