2012-04-11 5 views
0

Ich verwende XDomainRequest in IE 8, um den Inhalt einer Webseite zu erhalten. Der Antworttext enthält maskierte Zeichen und Unicode-Zeichen, die verhindern, dass das Markup in ein div eingefügt wird. Dies ist ein Beispiel für die zurückgegebenen Daten.IE XDomainRequest responseText und HTML

<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\">\u000d\u000a<html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u000d\u000a<head>\u000d\u000a <title>...<\/title>\u000d\u000a <script src=\"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.7.1\/jquery.min.js\" type=\"text\/javascript\"><\/script>\u000d\u000a<\/head>\u000d\u000a<body>\u000d\u000a\u000d\u000a<div style=\"font-size:24px;font-weight:bold\">\u000d\u000aText Headline: \u000d\u000a<\/div>\u000d\u000a\u000d\u000a<div style=\"float:left;width:50%;margin:0;padding:0;\">\u000d\u000a<p>Lorem ipsum dolor sit amet<\/p>\u000d\u000a\u000d\u000a<p>In nec imperdiet lectus. 

Wenn ich decodeURI oder decodeURIComponent verwenden erhalte ich die Fehlermeldung „Der URI keine gültige Codierung decodiert werden soll“.

Kann jemand eine Methode oder eine Regex vorschlagen, um das HTML zu bereinigen?

Antwort

-1

auf meinem kurzen Test Basierend:

regex = /\\([^u])/g; 
// put it in a JSON object so that JS doesn't automatically de-escape 
string = JSON.stringify({response: '<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD XHTML 1.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/xhtml1\/DTD\/xhtml1-transitional.dtd\">\u000d\u000a<html xmlns=\"http:\/\/www.w3.org\/1999\/xhtml\">\u000d\u000a<head>\u000d\u000a <title>...<\/title>\u000d\u000a <script src=\"\/\/ajax.googleapis.com\/ajax\/libs\/jquery\/1.7.1\/jquery.min.js\" type=\"text\/javascript\"><\/script>\u000d\u000a<\/head>\u000d\u000a<body>\u000d\u000a\u000d\u000a<div style=\"font-size:24px;font-weight:bold\">\u000d\u000aText Headline: \u000d\u000a<\/div>\u000d\u000a\u000d\u000a<div style=\"float:left;width:50%;margin:0;padding:0;\">\u000d\u000a<p>Lorem ipsum dolor sit amet<\/p>\u000d\u000a\u000d\u000a<p>In nec imperdiet lectus.'}); 

string.replace(regex, '$1'); 

alle der Flucht Schrägstriche außer auf dem Unicode ersetzen wird. Ich denke nicht, dass es viele andere nicht-flüchtige Verwendungen für Vorwärtsstriche in JS gibt.