在javascript中避免url中的特殊字符
我有一个树状视图,动态添加节点,并在每个节点上添加javscript click函数。。这里thisFileNode.Value有url值,避免了url中的spl字符,我在代码中使用了转义函数。。还是不行。。 有人能帮我吗 我不熟悉逃跑,它到底是干什么的???那怎么做呢在javascript中避免url中的特殊字符,javascript,asp.net,special-characters,Javascript,Asp.net,Special Characters,我有一个树状视图,动态添加节点,并在每个节点上添加javscript click函数。。这里thisFileNode.Value有url值,避免了url中的spl字符,我在代码中使用了转义函数。。还是不行。。 有人能帮我吗 我不熟悉逃跑,它到底是干什么的???那怎么做呢 thisFileNode.NavigateUrl = "javascript:clickNode(this, escape('" + thisFileNode.Value + "'));" 如果url中有任何spl字符应
thisFileNode.NavigateUrl = "javascript:clickNode(this, escape('" + thisFileNode.Value + "'));"
如果url中有任何spl字符应该删除,如何获取有效的url???使用HttpUtility.JavaScriptStringEncode:
thisFileNode.NavigateUrl = "javascript:clickNode(this, '" +
HttpUtility.JavaScriptStringEncode(thisFileNode.Value) + "');"
或者,您也可以手动转义特殊字符:
thisFileNode.NavigateUrl = "javascript:clickNode(this, '" + HtmlEscape(thisFileNode.Value) + "');"
HtmlEscape方法:
public static string HtmlEscape(string str)
{
return str
.Replace("&", "&")
.Replace("\"", """)
.Replace("'", "'")
.Replace("<", "<")
.Replace(">", ">");
}
}
publicstaticstringhtmlescape(stringstr)
{
返回str
.替换(“&”、“&;”)
.替换(“\”,“”)
.替换(“'”、“';”)
.替换(“,”);
}
}
在javascript中,您可以使用encodeURI(str)
对URL进行编码,或者使用encodeURIComponent(str)
对URL的一部分进行编码(例如作为组件提供的URL)。更多的解释
使用decodeURI(str)
和decodeURIComponent(str)
获取原始字符串
这是因为这些方法将url中禁止的特殊字符替换为转义字符串,例如&
变成&代码>
thisFileNode.NavigateUrl =
"javascript:clickNode(this, decodeURI('" + thisFileNode.Value + "'));"
注意:如果thisFileNode.Value
是URL或要插入到URL中,则这与此相关
您可能还需要(或者相反地)转义引号等可能被javascript本身误解的内容。我不是.Net专家,但是HttpUtility.JavaScriptStringEncode
应该可以做到这一点。您不需要解码字符串,因为它正好允许您设置javascript字符串。多亏了onof,现在我可以在我的javascript中获得编码值。。。我如何在没有特殊字符的情况下将其解码为原始url。@Javascript中的ParvathiNair使用decodeURI。服务器端您不需要任何关于v2.0的提示吗JavaScriptStringEncode
仅在.NET v4.0中使用。@您可以使用该函数的反编译版本: