2015-05-18 5 views
3

У меня есть одна переменный с некоторым текстом и анкерным элементом тега какКак декодировать яваскрипт значения переменного, которая содержит HTML элемента

var success_msg = 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a> to save your wishlist.'; 

Теперь эти переменным я передаю Аякс, и это дисплей сообщения с всплывающим окном на АЯКСЕ успеха.

Ajax код:

var success_msg = 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a>+ to save your wishlist.'; 
$.ajax({ 
    type: "POST", 
    url: BASE_URL+"home/featherlightInfo", 
    data: "success_msg="+success_msg, 
    success: function (html) { 
     $('#loading-div').hide(); // Hide Ajax loader 
     $('#featherlightInfoPop').html(html); 
     $.featherlight('#featherlightInfo');      

     setTimeout(function(){ 
      $(".featherlight-close").trigger("click"); 
     }, 5000); 

     $('#feathre').addClass('login-feathre'); 
    } 
}); 

Everythig работает идеально, но в всплывающем HTML я получаю якорный тег, как это:

<a title="\&quot;Login\&quot;" class="\&quot;login\&quot;" id="\&quot;popup-login\&quot;" href="\&quot;javascript:void(0);\&quot;">login</a>` 

Одна из странных вещей является то, что этот код работает идеально с мой локальный сервер.

Я хочу, чтобы этот результат: Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a> to save your wishlist.

Так что нужно сделать, чтобы получить надлежащий элемент якорь?

+2

Похоже, что он должен быть установлен на стороне сервера, а не на стороне клиента. –

+3

Итак, вы передаете сообщение серверу, который отправляет его обратно клиенту, который предупреждает его? В чем смысл? –

+0

Почему бы просто не отправить html с сервера? Это намного чище и не сложно. – Akar

ответ

0

Попробуйте encodeURI функцию JavaScript:

var success_msg = 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a>+ to save your wishlist.'; 
var encode_msg = encodeURI(success_msg); 

For more read documentation.

ИЛИ

Вы можете передать сообщение флага в запросе Ajax и на основании того, что вы можете создать этот 'Please <a href="javascript:void(0);" id="popup-login" class="login" title="Login">login</a>+ to save your wishlist.'; HTML-код на стороне сервера. Это будет хорошей практикой.

0

Согласно jquery ajax: Когда вы отправляете данные на сервер, он будет преобразован в строку запроса, поэтому кавычки будут экранированы.

Параметр данных может содержать либо строку запроса формы key1 = значение1 & ключ2 = значение2, или объект вида {ключ1: «value1», ключ2: «значение2»}. Если используется последняя форма, данные преобразуются в строку запроса, используя jQuery.param() перед отправкой. Обработку можно обойти, установив для параметра processData значение false. Обработка может быть нежелательной, если вы хотите отправить XML-объект на сервер ; в этом случае измените параметр contentType с application/x-www-form-urlencoded на более подходящий тип MIME.

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