Ответить Новая тема Новый опрос 
 Кодировка при передаче имени товара скриптом в URL
Brontozaur
Новичок
Сообщений: 3
Регистрация: 27-03-2018


27-03-2018 14:31
Всем привет.
Есть работающий сайт. С кодировкой везде все в порядке.
Попросили добавить кнопку банка, вызывающую форму заявки на кредит.
Скрипт
Код:
<script type="text/javascript">
            function b64EncodeUnicode(str) {
                return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,
                    function toSolidBytes(match, p1) {
                        return String.fromCharCode('0x' + p1);
                }));
            }        
        

            function sendEcomData() {
        
            var item_name = $('[itemprop = "name"]').text();
            
            
            var item_price = $('#our_price_display').text();

            item_price=item_price.replace(/,/,'.');
            item_price = item_price.replace(/\s/g, '');
            item_price = item_price.split("грн.", 1);
            

                
                http = new XMLHttpRequest();
                var url = "https://ratanet.ukrsibbank.com//coliseum/pages/simpleecom.jsf";
                var params = "?shopID=shopIDValue&goodprice=priceValue";
                var options='width=1090,height=460,top='+((screen.height-460)/2)+',left='+((screen.width-1090)/2)+',toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no';
    
                params = params.replace("shopIDValue", b64EncodeUnicode('16179'));
                params = params.replace("goodsValue", b64EncodeUnicode(item_name));
                params = params.replace("priceValue", b64EncodeUnicode(item_price));
                
                window.open(url.concat(params),'gener',options);
                window.close();


Скрипт формирует ссылку из URL банка + ID магазина + цена + имя товара.

Если скрипт вписан в хтмле на локальном компе - все ОК -
Скрытое содержимое:
просмотр разрешен группе "Пользователи".


Если тот же хтмл лежит на вебсервере магазина - все ОК -
Скрытое содержимое:
просмотр разрешен группе "Пользователи".


А если скрипт помещен в product.tpl, имя товара передается неправильно -
Скрытое содержимое:
просмотр разрешен группе "Пользователи".


Помогите кто-нить как справиться с этой проблемой
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Brontozaur
Новичок
Сообщений: 3
Регистрация: 27-03-2018


28-03-2018 16:29
Проблема локализована, но не решена.

В первой части скрипта в строке
Код:
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g,


преста удаляет фигурные скобки вокруг двойки.
То есть при просмотре кода страницы эта строка выглядит так
Код:
return btoa(encodeURIComponent(str).replace(/%([0-9A-F]2)/g,


Кто может подсказать где искать причину?


Сообщение отредактировал Brontozaur (28-03-2018 11:30)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Brontozaur
Новичок
Сообщений: 3
Регистрация: 27-03-2018


28-03-2018 20:31
Проблема решилась выносом скрипта во внешний файл и его вызовом в шаблоне.
Приятно было пообщаться с умным человеком.
Тему можно закрывать.
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос