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 ...

War es hilfreich?

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>")
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top