2008-12-04 2 views
0
<document.write("<SCR"+"IPT TYPE='text/javascript' SRC='"+"http"+(window.location.protocol.indexOf('https:')==0?'s':'')+"://"+gDomain+"/"+gDcsId+"/wtid.js"+"'><\/SCR"+"IPT>"); 

Мне нужно бежать строку выше, для того, чтобы добавить все это к StringBuilder, но до сих пор я должен быть что-то не хватает, потому что окончание строка не правильно ...C# StringBuilder - как избежать этой строки:

+0

Без вашего кода сложно понять, в чем проблема. – 2008-12-04 10:18:47

ответ

4
string x = @"<document.write(""<SCR""+""IPT TYPE=""'text/javascript' SRC='""+""http""+(window.location.protocol.indexOf('https:')==0?'s':'')+""://""+gDomain+""/""+gDcsId+""/wtid.js""+""'><\/SCR""+""IPT>"");"; 

Префикс @ упрощает прохождение. Вам просто нужно повернуть каждый «в».

Вы найдете вашу программу намного проще в обслуживании, если вы храните JavaScript во внешнем файле. Я предполагаю, что вы используете StringBuilder, чтобы вы могли смешивать биты постоянного скрипта с ? несколько динамических значений Вы можете записать его в файл, но поместить побег, как это для динамических значений:

var fromCSharp = {0}; 

Затем во время выполнения, загрузите файл JS и передать его string.Format в качестве строки формата, а также со значениями для замены каждого вхождения {0}, {1} и т. д. Вам нужно только один раз загрузить строку формата из файла и сохранить ее в кэше.

Также, если значения, которые вы вставляете в JavaScript, сами являются строковыми литералами, вам нужно будет избежать их в соответствии с синтаксисом JavaScript.

+0

Запуск скрипта из внешних файлов не работал до сих пор это специально не рекомендуется в самом скрипте ... Моя первоначальная идея состояла в том, чтобы просто вставить небольшой тег скрипта, связанный с внешним JS-файлом, но, увы ... не работает – noesgard 2008-12-04 11:43:44

0

Я думаю, что вы смешиваете то, что JavaScript и что такое C#. Можете ли вы сказать нам строку вы строка, которую вы пытаетесь достичь ...

, например

window.location.protocol.indexOf('https:') является JavaScript

но предположительно

gDomain и gDcsId

являются переменными от вашего метода C#

может быть, это:

"<SCRIPT TYPE='text/javascript' SRC='"+"http"+"(window.location.protocol.indexOf('https:')==0?'s':'')"+"://" + gDomain + "/"+ gDcsId+ "/wtid.js"+"'></SCRIPT>") 
0

Строка в начале то, что я хочу точно ... (я не смешиваясь с JavaScript C# - Мне просто нужно добавить строку в C# StringBuilder что coincidance содержит некоторый JavaScript)

Его внешний скрипт, который я должен разместить на странице, используя StringBuilder (по разным причинам).

У меня нет никакого способа знать, если какие-либо изменения в скрипт сделает это не в состоянии, поэтому я должен включить его как есть ...

Это только одна строка общего сценария, но большинство других линий I» ве удались правильно бежать, и они включены как хотел ...

+0

извинения, я неправильно понял вопрос: D – inspite 2008-12-04 10:56:53

6

Вы должны попробовать что-то вроде этого:

@"<document.write(""<SCR""+""IPT TYPE='text/javascript' SRC='""+""http""+(window.location.protocol.indexOf('https:')==0?'s':'')+""://""+gDomain+""/""+gDcsId+""/wtid.js""+""'><\/SCR""+""IPT>"");" 

Когда предваряя строковый литерал с @, истекающим нужно только удвоить "carácter .

Надеюсь, эта помощь.

+0

, похоже, работает: o) Будет ли проверять другую фигуру линий тоже Вы добавили «@» и дважды все? » – noesgard 2008-12-04 10:35:33

Смежные вопросы