Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Неправильно формируется ссылка (https://javascript.ru/forum/misc/64821-nepravilno-formiruetsya-ssylka.html)

a.preymak 07.09.2016 19:56

Неправильно формируется ссылка
 
Joomla 3
Компонент JLexReview - в нем есть возможность "Поделиться" отзывом в соцсетях.
Правильная ссылка должна формироваться так: site.ru/banki/bank#review-8
Но при нажатии кнопки "Поделиться" в соцсеть передается ссылка: site.ru/banki/bank8#review-8
То есть добавляется id отзыва после названия материала

Код отвечающий за формирование ссылок в компоненте:
switch (t) {
        case 'fb':
            if (typeof FB=='undefined') {
                window.open('https://www.facebook.com/sharer.php?s=100&p[url]'+encodeURIComponent(url));
                return;
            }
            FB.ui({
                method: 'feed',
                link: url
            }, function(response){});
            break;
        case 'tw':
            window.open('https://twitter.com/intent/tweet?tw_p=tweetbutton&url='+encodeURIComponent(url));
            break;
        case 'gl':
            window.open('https://plus.google.com/share?url='+encodeURIComponent(url));
            break;
        case 'vk':
            window.open('http://vkontakte.ru/share.php?url='+encodeURIComponent(url));
            break;
        }


Помимо facebook, twitter, google, vk есть возможность просто посмотреть ссылку (permarklink) на отзыв, и как раз она формируется верно.
Код:
/**
         * Show permarklink popup
         */
        permarklink:function(id){
            var url=window.location.href.replace(window.location.hash,'');
            //url+= url.indexOf('?')!=-1?'&hl=':'?hl=';
            url+= '#review-'+id;
            
            if (window.JRPage) {
                url=o.plugin.url({
                    option:'com_jlexreview',
                    view:'review',
                    id:id
                });
            }
            o.promptUI({
                title:lang.PERMARKLINK,
                content:'<quote>'+url+'</quote>',
                okLabel:false,
                ccLabel:'Ok',
                cancel:function(){}
            });

Помогите, что можно сделать?

warren buffet 08.09.2016 10:05

Ну так ищи кто еще раз приделывает id к урлу между генерирование и выводом.

И эту хрень encodeURIComponent(url) можно сделать 1 раз

var unc_url=encodeURIComponent(url);

а потом просто + unc_url


Часовой пояс GMT +3, время: 19:22.