Во-первых, хочу всех поприветствовать, первый пост на этом форуме.
Во-вторых, хотелось бы решить такую проблему:
Со страницы в ВК
https://vk.com/dev/Share беру код кнопки публикации ссылок:
<!-- Put this script tag to the <head> of your page -->
<script type="text/javascript" src="http://vk.com/js/api/share.js?90" charset="windows-1251"></script>
<!-- Put this script tag to the place, where the Share button will be -->
<script type="text/javascript">
document.write(VK.Share.button({
url: 'http://mysite.com',
title: 'Хороший сайт',
description: 'Это мой собственный сайт, я его очень долго делал',
image: 'http://mysite.com/mypic.jpg',
noparse: true
}));
</script>
noparse: true не работает, все берется из метатегов страницы.
Саму кнопку я немного переделал под себя, она ссылается на внутреннюю страницу, а установлена на главной:
<script type="text/javascript"><!--
document.write(VK.Share.button({url: 'http://mysite.com', title: 'Хороший сайт', description: 'Это мой собственный сайт, я его очень долго делал', image: 'http://mysite.com/mypic.jpg', noparse: true},{type: 'round', text: '<img src=" /mainpage/img/vk_share.png" align="absmiddle" style="padding-top:3px;padding-right:2px;" />'}));
--></script>
И вот в чем проблема. В документации к кнопке написано про параметр
noparse: true - Если значение true, то сервер ВКонтакте
не будет делать дополнительный запрос для загрузки недостающей информации с публикуемой страницы. Если параметр noparse не передается или равен false, то в диалоговом окне предварительного просмотра заметки перед публикацией будет использоваться информация с публикуемой страницы. Сервер ВКонтакте загружает содержимое публикуемой страницы и выполняет поиск необходимых параметров:
1. Заголовок. Если на публикуемой странице есть тег <meta name="title" content="...">, то заголовок будет взят из него, иначе будет использован тег <title>.
2. Описание. Если на публикуемой странице есть тег <meta name="description" content="...">, то описание будет взято из него.
Моя переделанная кнопка работает, но при noparse: true все равно выдергивает заголовок, описание и картинку из метатегов ссылаемой страницы. Тогда я пошел другим путем, прописав все параметры в url:
На сайте кодировка UTF-8
<script type="text/javascript">
document.write(VK.Share.button({url: 'http://мойсайт.ру/страница&title=Заголовок статьи&description=Краткое описание статьи&image=http://мойсайт.ру /img/3/62358420.jpg&noparse=true'},{type: 'round', text: '<img src="/mainpage/img/vk_like.png" align="absmiddle" style="padding-top:3px;padding-right:2px;" />'}));
</script>
Заголовок, описание и картинка теперь берутся из скрипта, но получил проблему с кодировкой в IE - заголовок и описание открываются краказябрами (в других браузерах такой проблемы нет). Тогда я скрипт в Notepad++ сохранил в UTF-8 и закинул к себе на фтп, сославшись на него:
<script type="text/javascript" src="путь к скрипту.js" charset="UTF-8"></script>
В IE все стало на русском, в остальных наоборот все сменилось на краказябры. Как бы я не мучал кодировку, все равно не получается сделать кроссбраузерно.
Другой косяк заключается в том, что когда все параметры вписываешь в одну строку в url, то все это целеком вписывается в одресную строку всплывающего окна. Сама ссылка в ВК ведет к правильному пути, но счетчик кнопки не считает - всегда показывает одно число, не считает из-за неправильной ссылки во всплывающем окне публикации.
Поэтому оптимальным было бы вернуться к родному коду в ВК (самый первый в посте), но вот как заставить работать
noparse: true, что бы заголовок, описание и картинка брались не из метатегов, а из скрипта?