使用C#在BHO中注入javascript-如何正确地转义字符串
Injecting javascript with BHO using C# - how to escape strings properly
我在C#中有以下代码,我可以将其附加到IE,它运行良好,直到我遇到JSON,我收到一个抱怨语法的javascript错误。我应该如何在C#中转义javscript代码?
string jsonStr = @"[
{ ''name'': ''Obj1'', ''description'': ''Test description...'', ''url'':''http://www.test.com'' },
{ ''name'': ''Obj2'', ''description'': ''Testing...'', ''url'':''http://www.test.com'' },
{ ''name'': ''Obj3'', ''description'': ''Welp...'', ''url'':''http://www.test.com'' }
]";
IHTMLScriptElement scriptObject = (IHTMLScriptElement)document.createElement("script");
scriptObject.type = @"text/javascript";
scriptObject.text = @"function test() {
var Edit = 'document.getElementById(''tTest'').innerHTML = ''<h2 class=''label3''><span>Foo</span></h2><ol class=''container-list''>';
var json = '" + jsonStr + @"';
$.each(json, function (index, x) {
Edit += '<li class=''test1''><h3><a href=''#''><b>' + x.name + '</b> 1</a></h3><div class=''url''><cite>' + x.url + '</cite></div><div class=''creative''>' + x.description + '</div></li>';
});
Edit += '</ol>'';
eval('Edit');
}";
((HTMLHeadElement)head).appendChild((IHTMLDOMNode)scriptObject);
IHTMLDocument2 doc = (IHTMLDocument2)this._webBrowser2.Document;
IHTMLWindow2 parentWindow = doc.parentWindow;
if (parentWindow != null)
parentWindow.execScript("test();", "javascript");
c#代码很好,我只是在为javascript代码注入所有引号、单引号等以消除javascript错误时遇到了麻烦。非常感谢您的帮助!
当使用以@为前缀的逐字字符串文字时,意味着将封闭的字符串视为文字。所以基本上没有反斜杠"''"转义。要转义双引号("),只需将其加倍(")即可。
string jsonStr = @"[
{""name"": ""Obj1"", ""description"": ""Test description..."", ""url"":""http://www.test.com"" },
{ ""name"": ""Obj2"", ""description"": ""Testing..."", ""url"":""http://www.test.com"" },
{ ""name"": ""Obj3"", ""description"": ""Welp..."", ""url"":""http://www.test.com"" }
]";
相关文章:
- document.open/document.write没有正确地清除chrome中的文档——这是chrome的错误吗
- 如何正确地使这个js片段内容不可知
- 如何正确地将参数传递给RequireJS回调函数
- 如何正确地在页面外编写DFP广告单元
- 如何正确地将数据发送到打开的Firefox侧边栏
- jQuery:如何正确地暂停递归
- 承诺-如何正确地将错误附加到此示例
- 如何正确地原型JS子伪类
- 如何正确地以无限滚动浏览网页
- Photoswipe 4:如何正确地禁用“;getThumbBoundsFn"在支持IE8的纯VanillaJ
- 我不知道如何正确地将REST响应对象传递给ReactJS子组件
- 如何正确地将jquery插件添加到webpack中的jquery对象中
- 如何正确地将数据从自定义服务传递到角度控制器
- 如何正确地从数组中删除对象
- 如何正确地包含带有参数的谷歌地图API
- 使用C#在BHO中注入javascript-如何正确地转义字符串
- JavaScript:SyntaxError:missing)-如何正确地转义php中的js
- 如何正确地转义数据以供浏览器解析?用于浏览器的addslahes()
- 如何正确地转义数据与javascript查询字符串在PHP中解码
- 为什么我不能正确地附加具有指定id的标签?是字符转义问题吗?