2013-12-09 4 views
0

Я прочитал несколько статей и попробовал некоторые подходы, но не смог заставить их работать.Пропущенная строка URL-адреса не интерпретируется как строка

htmlCode += '<button id="' + addButtonId + '" title="' + addButtonTitle + '" class="button" onclick="getProductUrl(' + url + '); return false;"><span><span>' + addWithButonTitle + '</span></span></button>'; 

и сама функция:

getProductUrl: function(url) { 
     return setLocation('\'' + decodeURIComponent(url) + document.getElementById('qty_field').value + '\''); 
    }, 

По-видимому, строковое значение url не рассматривается как строка. Я получаю ошибку отсутствующего кронштейна здесь: getProductUrl(http:^//...rest of the url. Конечно, проблема не в скобках, а в том, что // рассматриваются как начало комментария.

Так что мне нужно сделать это, чтобы передать это значение url значение CORRECTLY как строку. Я попробовал первое декодирование, а затем проходящий (потому что decodeURIComponent(url) должен возвращать строку Также я попробовал String(url) и url + "" также какой-то образом избежать специальных символов:... url.replace('/','\/') или даже /g пимпочки, которые не работают на всех

Итак, все эти подходы не увенчались успехом, я бы очень признателен за подсказку или решение здесь

+1

Что такое код 'onclick =" getProductUrl ('+ url +'); "?? Я сомневаюсь, что это полная линия. –

+0

@FelixKling - Я обновил свой вопрос, поставив полную строку кода. :) – Syspect

+1

В этом случае ваш код должен выглядеть так: 'htmlCode + = '';' – peerless

ответ

3

Попробуйте один

onclick="getProductUrl('" + url + "');" 

Для обновленной строки кода:..

htmlCode += '<button id="' + addButtonId + '" title="' + addButtonTitle + '" class="button" onclick="getProductUrl(\'' + url + '\'); return false;"><span><span>' + addWithButonTitle + '</span></span></button>'; 
+0

Я обновил сообщение, поместив всю строку кода, где находится 'onclick'. Взгляни, пожалуйста. И я также пробовал ваш подход, который не работал, потому что 'url' обрабатывается как строка с прямым вводом, а не переменная. Возможно, после проверки моего обновления вы дадите еще один выход. :) – Syspect

+1

Отметить комментарий Я сформулировал ваш вопрос. Это все о побеге. – peerless

Смежные вопросы