Работа с fancybox, социальный постинг
Имею код вызова
var thisHash = window.location.hash; $(document).ready(function() { if(window.location.hash) { $(thisHash).fancybox({ }).trigger('click'); } $('.fancybox').attr('rel', 'gallery').fancybox({ prevEffect : 'fade', nextEffect : 'fade', closeBtn : true, arrows : true, nextClick : true, beforeShow: function() { var el, id = $(this.element).data('title-id'); if(id){ el = $('#'+id); if(el.length){ this.title = el.html(); } } window.location.hash = this.index; }, }); }); При открытии к адресу добавляется хеш с id изображения и иконки соц сетей. т.е если код изображения у нас <a id="0" class="fancybox" href="#" data-title-id="title-1" data-fancybox-group="gallery" title=""><img src="#" alt="" /></a> <div id="title-1" class="hidden"> <div class="shareblock"></div> </div> где <a id="0" добавляется в хеш http://...ru/#0 И подгружаеются кнопки соц сетей в <div class="shareblock"></div> Проблема: Сразу дам ссылку на пример (не реклама, ибо там нечего рекламировать, всего 3 картинки) http://mryayoo.ru 1. При первой загрузке страницы, кликаем на первую картинку видим адрес: http://mryayoo.ru/#0 Нажимаем кнопку Twitter, видим содержание: Код:
Заголвок http://mryayoo.ru/ 3. Открываем первую картинку, жмем кнопку Twitter, видим содержание: Код:
Заголвок http://mryayoo.ru/#0 Вопрос: Как и что куда дописать, чтобы при первом открытии картинки содержание твиттера было идентично содержанию адресной строки, аналогично при прокрутке ? |
Решил вопрос так:
function shareLoad() { $.getScript('share.js'); } |
Всплыла другая проблема, при шаринге вконтакте, берутся все картинки со страницы, а не та которую мы открыли
$(document).ready(function() { e = document.getElementsByTagName('div'); for (var k = 0; k < e.length; k++) { if (e[k].className.indexOf('shareblock') != -1) { if (e[k].getAttribute('data-url') != -1) u = e[k].getAttribute('data-url'); if (e[k].getAttribute('data-title') != -1) t = e[k].getAttribute('data-title'); if (e[k].getAttribute('data-image') != -1) i = e[k].getAttribute('data-image'); if (e[k].getAttribute('data-description') != -1) d = e[k].getAttribute('data-description'); if (e[k].getAttribute('data-path') != -1) f = e[k].getAttribute('data-path'); if (!f) { function path(name) { var sc = document.getElementsByTagName('script'), sr = new RegExp('^(.*/|)(' + name + ')([#?]|$)'); for (var i = 0, scL = sc.length; i < scL; i++) { var m = String(sc[i].src).match(sr); if (m) { if (m[1].match(/^((https?|file)\:\/{2,}|\w:[\/\\])/)) return m[1]; if (m[1].indexOf("/") == 0) return m[1]; b = document.getElementsByTagName('base'); if (b[0] && b[0].href) return b[0].href + m[1]; else return document.location.pathname.match(/(.*[\/\\])/)[0] + m[1]; } } return null; } f = path('share.js'); } if (!u) u = location.href; if (!t) t = document.title; function desc() { var meta = document.getElementsByTagName('meta'); for (var m = 0; m < meta.length; m++) { if (meta[m].name.toLowerCase() == 'description') { return meta[m].content; } } return ''; } if (!d) d = desc(); u = encodeURIComponent(u); t = encodeURIComponent(t); t = t.replace('\'', '%27'); i = encodeURIComponent(i); d = encodeURIComponent(d); d = d.replace('\'', '%27'); var vkImage = ''; if (i != 'null' && i != '') vkImage = '&image=' + i; var s = new Array( //Твиттер массив '"#" data-count="twi" onclick="window.open(\'https://twitter.com/intent/tweet?text=' + t + '&url=' + u + '\', \'_blank\', \'scrollbars=0, resizable=1, menubar=0, left=100, top=100, width=550, height=440, toolbar=0, status=0\');return false" title="Добавить в Twitter"' ); var so = new Array ( //Вконтакте массив '"#" data-count="vk" onclick="window.open(\'http://vk.com/share.php?url=' + u + '&title=' + t + vkImage + '&description=' + d + '\', \'_blank\', \'scrollbars=0, resizable=1, menubar=0, left=100, top=100, width=550, height=440, toolbar=0, status=0\');return false" title="Поделиться В Контакте"' ); var l = ''; //Твиттерим for (j = 0; j < s.length; j++) l += '<div class="twbtns"><a rel="nofollow" href=' + s[0] + ' target="_blank"></a></div>'; var lo = ''; //Вконтактерим for (jo = 0; jo < so.length; jo++) lo += '<div class="vkbtns"><a rel="nofollow" href=' + so[0] + ' target="_blank"></a></div>'; e[k].innerHTML = '<div id="share">' + l + lo +'</span>'; //Показываем в fancybox } }; }); |
Вопрос решен.
|
Часовой пояс GMT +3, время: 02:04. |