2013-12-10 3 views
0

У меня есть URL-адрес изображения, для которого decodeURIComponent является faling. Я тоже попробовал его с unescape, все равно не повезло. Я не могу использовать JQuery здесь. Мне нужно решение, которое использует простой JS для решения этой проблемы.decodeURIComponent не работает даже с unescape

Я не дал фактического кода, но вот фрагмент кода с URL, который нужно закодировать и декодировать.

Функция кодирования URL-адресов работает нормально, но функция декодирования не работает.

<!DOCTYPE html> 
<html> 
<body> 

<p id="demo">Click the button to encode and decode a URI.</p> 

<button onclick="myFunction()">Try it</button> 

<script> 
function myFunction() 
{ 
var uri = "http://lp.imageg.net/prod?set=key[initials],value[ABC]&set=key[color],value[blind stamp]&set=key[displaysize],value[64%]&load=url[http://chains.imageg.net/graphics/dynamic/chains/TUMI_TAG1.chain]"; 
var uri_enc = "Encoded URI: " + encodeURIComponent(uri); 
alert(uri_enc); 
var uri_dec = "Decoded URI: " + decodeURIComponent(unescape(uri)); 
var uri_dec = "Decoded URI: " + decodeURIComponent(uri); 
alert(uri_dec); 
var res = uri_enc + "<br>" + uri_dec; 
document.getElementById("demo").innerHTML=res; 

} 
</script> 

</body> 
</html> 
+0

вы имели в виду 'encodeURI (URI)'? http://stackoverflow.com/questions/75980/best-practice-escape-or-encodeuri-encodeuricomponent –

+0

Вы пытаетесь декодировать некодированную строку в 'uri'. Попробуйте декодировать 'uri_enc' не' uri'. –

ответ

1

Вы делали это неправильно ... вот это обновленный код ...

Demo Fiddle

<!DOCTYPE html> 
    <html> 
    <body> 
    <p id="demo">Click the button to encode and decode a URI.</p> 
    <button onclick="myFunction()">Try it</button> 
    <script> 
     function myFunction() { 
      var uri = "http://lp.imageg.net/prod?set=key[initials],value[ABC]&set=key[color],value[blind stamp]&set=key[displaysize],value[64%]&load=url[http://chains.imageg.net/graphics/dynamic/chains/TUMI_TAG1.chain]"; 
      var uri_enc = "Encoded URI: " + encodeURIComponent(uri).replace(/'/g, "%27").replace(/"/g, "%22"); 
      alert(uri_enc); 
      var uri_dec = "Decoded URI: " + decodeURIComponent(uri_enc.replace(/\+/g, " ")); 
      alert(uri_dec); 
      var res = uri_enc + "<br>" + uri_dec; 
      document.getElementById("demo").innerHTML = res; 

     } 
    </script> 
</body> 
    </html> 
Смежные вопросы