Показать сообщение отдельно
  #3 (permalink)  
Старый 10.09.2013, 16:59
Аспирант
Отправить личное сообщение для dolte Посмотреть профиль Найти все сообщения от dolte
 
Регистрация: 04.09.2013
Сообщений: 37

Но у меня на pc работает всё отлично, а вот на стороннем хостинге косяк...

статично т.е так ?

<script type="text/javascript" src="/share.js"></script>

а как код обернуть правильно в функцию ?
в js особо не разбираюсь.

function shareload() {
    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 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 + '&image='+lnkimg+ '&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>';
        }
    };
};

---------------------

В таком случае работает не так как нужно.
При первом открытии фотографии, скрипт не инициализируется, при перемотке фото, скрипт задействуется, но параметры берет из первого просмотренного фото =(

Последний раз редактировалось dolte, 10.09.2013 в 17:14.
Ответить с цитированием