C # String - wie diese Zeichenfolge zu entkommen:
-
19-08-2019 - |
Frage
<document.write("<SCR"+"IPT TYPE='text/javascript' SRC='"+"http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js"+"'><\/SCR"+"IPT>");
Ich brauche die Zeichenfolge oben, um zu entkommen, das Ganze zu einem String hinzuzufügen, aber so weit muss ich etwas fehlt, weil String Kündigung nicht korrekt ist ...
Lösung
string x = @"<document.write(""<SCR""+""IPT TYPE=""'text/javascript' SRC='""+""http""+(window.location.protocol.indexOf('https:')==0?'s':'')+""://""+gDomain+""/""+gDcsId+""/wtid.js""+""'><\/SCR""+""IPT>"");";
Das Präfix @ macht entweichende einfacher. Sie müssen nur in jedem Zug "in‚‘.
Sie werden Ihr Programm viel einfacher zu warten, wenn Sie die JavaScript in einer externen Datei speichern. Ich nehme an, Sie verwenden String, so dass Sie Bits konstant Skript mit einigen dynamischen Werten mischen? Man könnte es in eine Datei schreiben, aber ich mag diese setzen Fluchten für die dynamischen Werte:
var fromCSharp = {0};
Dann zur Laufzeit, laden Sie die JS-Datei und geben Sie es an string.Format als Format-String, zusammen mit den Werten jedes Vorkommen von {0} zu ersetzen, {1}, etc. Sie müssen nur den Format-String aus laden die Datei einmal und halten sie sie im Cache gespeichert.
Auch wenn die Werte, die Sie in die JavaScript einfügen sich Stringliterale sind, müssen Sie sie entsprechend der Syntax von JavaScript entkommen.
Andere Tipps
Sie sollten so etwas wie dies versuchen:
@"<document.write(""<SCR""+""IPT TYPE='text/javascript' SRC='""+""http""+(window.location.protocol.indexOf('https:')==0?'s':'')+""://""+gDomain+""/""+gDcsId+""/wtid.js""+""'><\/SCR""+""IPT>"");"
Wenn Sie eine Stringliteral mit @ prefixing, die nur benötigt entweichende die "caracter zu verdoppeln.
Hoffe diese Hilfe.
Die Zeichenfolge am Anfang ist, was ich will genau ... (Ich bin nicht JavaScript mit C # Vertauschen - ich muss nur einen String in C # String hinzufügen, dass durch Coincidance enthält einige JavaScript)
Sein ein externes Skript, das ich auf einer Seite zu setzen habe, mit einem String (aus verschiedenen Gründen).
Ich habe keine Möglichkeit, wenn Änderungen an dem Skript zu wissen, wird es so machen scheitern ich umfassen muss es wie ...
Es ist nur 1 Zeile des gesamten Skript, aber die meisten anderen Linien Ich habe es geschafft, richtig zu entkommen und sie enthalten sind als wollte ...
Ich glaube, Sie mischen, was JavaScript
ist und was C#
. Können Sie uns bitte sagen, die Zeichenfolge Sie Zeichenfolge, die Sie versuchen zu erreichen ...
zum Beispiel
window.location.protocol.indexOf('https:')
ist JavaScript
aber vermutlich
gDomain
und gDcsId
sind Variablen aus Ihrer C#
Methode
vielleicht dies:
"<SCRIPT TYPE='text/javascript' SRC='"+"http"+"(window.location.protocol.indexOf('https:')==0?'s':'')"+"://" + gDomain + "/"+ gDcsId+ "/wtid.js"+"'></SCRIPT>")