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

我需要以整个事情添加到一个StringBuilder但到目前为止,我必须失去了一些东西,因为串端接不正确逃脱上面的字符串...

有帮助吗?

解决方案

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的语法,以逃避它们。

其他提示

您应该尝试是这样的:

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

当前缀字符串文字与@,唯一的转义需要的是加倍的“卡拉科特。

希望这帮助。

在开始的字符串是我想究竟是什么......(我不是JavaScript和C#混合起来 - 我只是需要一个字符串在C#StringBuilder的,通过coincidance包含一些JavaScript添加到)

它,我必须把页面上,使用一个StringBuilder(出于各种原因)外部脚本。

我不知道是否方式用于脚本的任何变化将使其失败,所以我必须将它当作是...

这是只有1号线总脚本的,但大多数其他线路我已经成功地逃脱正确和它们包含通缉......

我想你混淆了什么是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>")
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top