2012-03-03 1 views
1

Я пытаюсь динамически установить миниатюру, показанную при совместном использовании с Facebook, используя javascript. Я попытался добавить мета-тег «og: image» на страницу (это JSP), и это работает, но теперь я хочу заменить это изображение другим, динамически загруженным javascript.Используйте javascript для показа фотографии, показанной Facebook sharer

В принципе, страница вызывает API при загрузке, используя javascript и извлекает список изображений. Я хочу использовать один из них в качестве миниатюры.

Я попытался использовать javascript для замены содержимого метатега, но Facebook, похоже, не заботится о нем (он меняет, если я проверю его с моим браузером).

Возможно ли это?

Заранее благодарен!

ответ

0

Facebook robot никогда не запускает код сценария java , но почему вы не пытаетесь установить теги og на стороне сервера?

+0

Я прочитал вы можете использовать #! чтобы он запускал javascript, но не уверен, что я точно понял, если и как это должно работать. Я хотел избежать использования кода на стороне сервера, что означало бы изменение партии уже существующего кода. –

+0

возможно, но javascript не является полностью доверенным способом решения проблем –

1

Вот функция, я использовал для извлечения URL изображения из параметра Flashvars флэш-тега объекта, а затем присвоить его мета-тег с помощью 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); }); 

 Смежные вопросы

  • Нет связанных вопросов^_^