【问题标题】:Why does the css style in the page change when I use the Response.Write() method in asp.net to output the javascript code?为什么我使用asp.net中的Response.Write()方法输出javascript代码时页面中的css样式会发生变化?
【发布时间】:2011-06-07 07:14:37
【问题描述】:

当我在asp.net中使用Response.Write()方法输出javascript代码时,比如alert方法,这个页面的一些css样式发生了变化。

例如,当我像这样使用asp.net中的代码时:

Response.Write("<script>alert('success!')</script>");

我运行文件的时候,先是弹出警告信息,但是页面加载完成后,发现font-size样式变了变大了,其他的没有变。

我知道使用Page.ClientScript.RegisterStartupScript() 方法可以解决这个问题,但我想知道是什么导致了这个问题

【问题讨论】:

  • 您的代码示例?
  • 您应该发布更多代码。警报是否包含在正确关闭的 &lt;srcipt&gt; 标记中?

标签: javascript asp.net css


【解决方案1】:

那是因为您在不应该使用Response.Write 的地方使用它。您在生成页面内容的代码之外使用它,这意味着您将 Javascript 代码放在 HTML 文档之外。

如果您在 doctype 标记之前有任何内容,则 doctype 将被忽略,并且页面被解析为标记汤而不是有效文档,并且使用 Quirks 模式而不是标准合规模式呈现。这会影响 HTML 和 CSS 的解释方式,因为浏览器会尝试模拟古老的浏览器版本,包括所有非标准的怪癖和错误。它还将对元素使用不同的默认样式,这可能是您看到的字体大小不同的原因。

在使用 Quirks 模式时,Internet Explorer 尤其敏感。它将包含box model bug 以尝试与早期版本的浏览器兼容。

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多