【问题标题】:Custom Button WebControlAdapter IE7 Problem自定义按钮 WebControlAdapter IE7 问题
【发布时间】:2013-02-01 23:05:34
【问题描述】:

我在为按钮实现自定义 WebControlAdapter 时遇到了一点问题。我正在按照推拉门模式输出以下 HTML:

<button value="submit" name="Button1" id="Button1" type="Submit" onclick="__doPostBack('Button1','')"><span>Button</span></button>  

代替标准:

<input id="Button1" type="submit" value="Button" name="Button1"/>

正在这样做(以及其他原因),因此按钮将根据其中包含的文本调整大小,因此不仅仅是出于审美原因。此方法在除 IE7 之外的所有浏览器中运行良好,我之前假设(IE8 运行良好)。我已经将问题追溯到 IE7 回发按钮元素的内容而不是值的事实。这意味着正在返回 span 标记,导致 ASP.NET 抛出:

[HttpRequestValidationException (0x80004005): A potentially dangerous Request.Form value was detected from the client (Button1="<SPAN>Button</SPAN>").] 

这是正确的行为。我意识到我可以使用 Page.ValidateRequest 属性禁用此行为,但是由于这是一个现有的应用程序,这将导致每个页面上的重大更改以手动保护应用程序免受跨站点脚本攻击。

有没有人知道我可以在 IE7 和更早版本中使用这种方法?

任何想法都将不胜感激。

提前致谢。

【问题讨论】:

    标签: asp.net internet-explorer-7


    【解决方案1】:

    尝试将 validaterequest=false 添加到 aspx 页面上的标记。希望这有效

    【讨论】:

    • 感谢 Pranali,但我知道 ValidateRequest(我帖子的最后一段)。但是禁用它会产生一个不可接受的安全漏洞(从长远来看,我可以手动阻止 XSS 攻击,但从短期来看,这是一项太大的工作)。无论如何感谢您的回复,我会继续寻找...
    【解决方案2】:

    我和你有类似的问题,但在这里找到了答案: what-disadvantages-are-there-to-the-button-tag-it-seems-there-are-quite-a-fe

    将此代码添加到我的 head 标签中解决了这个问题:

      <!--[if lt IE 8]>
        <script src="http://ie7-js.googlecode.com/svn/version/2.1(beta4)/IE8.js"></script>
      <![endif]-->
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多