在Asp.net超链接属性上禁用HTML编码
我在usercontrol上有一个超链接,在其中我在服务器端动态设置了在Asp.net超链接属性上禁用HTML编码,asp.net,html-encode,Asp.net,Html Encode,我在usercontrol上有一个超链接,在其中我在服务器端动态设置了onlick事件,如下所示: this.Attributes["onclick"] = string.Format("javascript:alert('{0}')", base.NavigateUrl); 问题是,当Asp.net呈现页面时,它会以如下方式结束 <a href='...' onclick="javascript:alert('TEST')>LINK</a&g
onlick
事件,如下所示:
this.Attributes["onclick"] = string.Format("javascript:alert('{0}')", base.NavigateUrl);
问题是,当Asp.net呈现页面时,它会以如下方式结束
<a href='...' onclick="javascript:alert('TEST')>LINK</a>
这显然不是有效的Javascript。使用“
而不是”
也无济于事,生成的HTML是警报(“测试”)
这有什么办法吗
谢谢。
onclick=“javascript:alert(';TEST';)”
非常有效。解析页面时,在javascript处理值之前,实体应该被替换为对应的实体。因此在第1步中,HTML解析器将属性值更改为javascript:alert('TEST');
,这是有效的JavaScript。onclick=“JavaScript:alert(';TEST';)”
是完全有效的。解析页面时,在JavaScript处理值之前,应该用对应的实体替换实体。因此在第1步中,HTML解析器将属性值更改为JavaScript:alert('TEST');
,这是有效的JavaScript。使用Jquery时它不起作用
服务器端:
this.Attributes["onclick"] = "$('#button').click();";
客户端:
onclick="$(&#39;#button&#39;).click();" gives an error.
在客户端是否有“真实”的单引号?使用Jquery时,它不起作用 服务器端:
this.Attributes["onclick"] = "$('#button').click();";
客户端:
onclick="$(&#39;#button&#39;).click();" gives an error.
在客户端是否有“真正的”单报价?royu
不幸的是,微软认为这是一种“安全功能”,他们并不真正关心浏览器或JavaScript的兼容性。覆盖它的一种方法是使用Eval([string]),而不是纯文本。在这种情况下,不应该对值进行编码。
不幸的是,微软认为这是一个“安全特性”,他们并不真正关心浏览器或JavaScript的兼容性。覆盖它的一种方法是使用Eval([string])而不是纯文本。在这种情况下,值不应该被编码。Oh thanx,我一直在直接检查HTML。Oh thanx,我一直在直接检查HTML