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

Не срабатывает $.getScript
Работаю с cms bitrix
при открытии фотографии fancybox, по onclick="shareload();" должно обрабатываться
function shareload() {
    $.getScript('/share.js');
}


но работает через раз, после N-го колличества перезагрузки страниц.

после "Сбросить кеш" скрипт срабатывает.

В чем может быть проблема ?

Само событие onclick работает, проверял alert'ом

вот код вызываемого скрипта:

$(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 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>';
        }
    };
});
Ответить с цитированием