unescape(), String wird nur bis zum ersten "&" ausgegeben

J1M1

Erfahrenes Mitglied
Hallo.

Der Parameter "NAV" mit Wert "Me&&MySelf"wurde mit escape() übergeben. Zum Ausgeben möchte ich es wieder unescapen, da sonst %26 statt & ausgegeben wird.


Siehe "function handleResponse2()":
HTML:
function load_subnav_and_content(NAV, PIC){

ajax_preload = new Image();
ajax_preload.src = "../../images/ajax.gif";

/*Load side-picture*/
document.getElementById('side').innerHTML = '<img src="../../images/' + PIC + '">';


/*Load sidebar*/
searchReq = false;
function getXmlHttpRequestObject(){
 if(window.XMLHttpRequest){
  return new XMLHttpRequest();
 } 
 else{
  if(window.ActiveXObject){
   return new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else{
   alert("Your browser doesn't support the XMLHttpRequest-Object. Please check for the newest version of your browser.");
  return false;
 }
 }
}

searchReq = getXmlHttpRequestObject();

if(searchReq && (searchReq.readyState == 4 || searchReq.readyState == 0)){
 searchReq.open("GET", 'includes/load_subnav.php?NAV=' + NAV, true);
 searchReq.onreadystatechange = handleResponse; 
 searchReq.send(null);
}

function handleResponse(){
 if (searchReq.readyState == 4 && searchReq.status==200){
  document.getElementById('sidebar').innerHTML = searchReq.responseText;
 }
 else{
  document.getElementById('sidebar').innerHTML = '<img src="../../images/ajax.gif" alt="" style="margin-left: 50px;">';
 }
}

/*Load content*/
ajax__bar_preload = new Image();
ajax__bar_preload.src = "../../images/ajax-bar.gif";



searchReq2 = false;
searchReq2 = getXmlHttpRequestObject();

if(searchReq2 && (searchReq2.readyState == 4 || searchReq2.readyState == 0)){
 searchReq2.open("GET", 'includes/load_nav_content.php?NAV=' + NAV, true);
 searchReq2.onreadystatechange = handleResponse2; 
 searchReq2.send(null);
}

function handleResponse2(){
 if (searchReq2.readyState == 4 && searchReq2.status==200){
  document.getElementById('title').innerHTML = unescape(NAV);
  document.getElementById('content').innerHTML = searchReq2.responseText;
 }
 else{
  document.getElementById('title').innerHTML = '<img src="../../images/ajax-bar.gif" alt="" style="margin-top: 40px;">';
    document.getElementById('content').innerHTML = '';
 }
}
 
}
Im Firefox klappt es wunderbar, doch im IE7 wird nur "Me&" ausgegeben. Warum?

Zum nachvollziehen: http://ajage.aj.funpic.de/html und dann auf "Me&&MySelf" klicken.

MfG J!M!
 
Hi,

warum der IE es nicht schafft, die Ausgabe mit dem zweiten Kaufmanns-UND fortzusetzen, kann ich dir nicht erklären. Aber versuch mal, die &-Zeichen vor der Ausgabe durch ihre HTML-Entitäten zu ersetzen.
Code:
document.getElementById('title').innerHTML += unescape(NAV).replace(/&/g, "&amp;");
Ciao
Quaese
 

Neue Beiträge

Zurück