c#中用于javascript的多级引号
本文关键字:多级 javascript 用于 | 更新日期: 2023-09-27 18:14:15
我有一个"自定义控件"项目,它构建了一个javascript字符串来插入另一个应用程序。应用程序调用"自定义控件"来确定某些行为。
我所遇到的问题涉及到在包含javascript的字符串中需要多级引号。在下面的版本中,我尝试转义内部引号,但IE抛出错误(由于错误80020101而无法完成操作)。我过去通过将javascript放在单独的js文件中并从插件代码中调用它来解决类似的问题。然而,在这种情况下,我无法让应用程序"看到"js文件。我怎么能把javascript变成一个字符串,我可以传递?
相关代码为:
class Class1 : Literal
{
protected override void CreateChildControls()
{
var controlHtml = new StringBuilder();
controlHtml.Append("<script type='text/javascript'>");
controlHtml.Append("$('#prodcon_error_msg').css('display', 'none');" +
"$('#prodcon_client_id_filterimg').click(function() {" +
"ShowFilterDialog('Client ID', 'clientId');" +
"});");
controlHtml.Append("function ShowFilterDialog(criteriaName, filterTitle) {" +
"alert('show dialog code here for ' + criteriaName);" +
"var filterDialogDiv = document.createElement('DIV');");
controlHtml.Append("filterDialogDiv.innerHTML = '"<div id='customaccountcriteriafilterdialog' class='dialogback'><div class='dialogheadingarea'>" +
"<span class='dialogtitle' style='float: left;'> '" + filterTitle + '" Lookup</span>" +
"<img class='dialogcloseimage' onmouseup='"removeElement('customaccountcriteriafilterdialog');'" src='../../images/boxy.gif'/>" +
"</div><br/>Key word: <input type='text' id='criteriaFilterKeyword' /></div>");
controlHtml.Append("filterDialogDiv.style.position = 'absolute';" +
"filterDialogDiv.style.left = '300px';" +
"filterDialogDiv.style.top = '85px';" +
"filterDialogDiv.style.Zindex = 4; " +
"document.body.appendChild(filterDialogDiv);" +
"}");
this.Text = controlHtml.ToString();
}
}
注意:结束脚本标签是由调用应用程序在追加前添加的。
我的建议是把整个代码放在一个txt文件中,这个txt文件应该被标记为嵌入式资源。如果文本的某些部分应该根据变量值进行格式化,解决方案是使用字符串。
加载txt文件,只需使用
try
{
var _assembly = Assembly.GetExecutingAssembly();
var _textStreamReader = new StreamReader(_assembly.GetManifestResourceStream("MyNamespace.MyTextFile.txt"));
var text = _textStreamReader.ReadToEnd();
// use the variable text for something...
}
catch
{
MessageBox.Show("Error accessing resources!");
}
我希望它有帮助。致以最亲切的问候。