代码之家  ›  专栏  ›  技术社区  ›  Danger14 cletus

如何在不访问代码的情况下将doctype更改为标准模式?

  •  0
  • Danger14 cletus  · 技术社区  · 12 年前

    我正在设计一个基于.NET软件CMS解决方案的网站,该解决方案不遵循当前的最佳实践。它使用表和的doctype <!-- DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" --> 。软件公司不允许你编辑 .aspx 文件或 js 。它们只允许您编辑样式表和不同的模块,例如HTML模块、天气模块、幻灯片放映模块等。

    因此,IE总是以打破CSS的怪癖模式渲染网站。我无权更改doctype或编辑中的任何内容 <head></head> .

    有没有办法在无法访问代码的情况下更改doctype?

    我必须处理的问题:

    <!--DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" -->
    <html>
    <head id="htmlHead"><title>
    Welcome to xxx
    </title>
    
    <script type="text/javascript" language="JavaScript">
            function stopError()
            {
              return true;
            }
            window.onerror = stopError;
    </script>
    
    <link href="xxx.css" rel="stylesheet" type="text/css" />
    <meta name="ROBOTS" content="INDEX,NOFOLLOW" />
    <link href="xxx/favicon.ico" rel="SHORTCUT ICON" />
    <style id="spMenuStyle"></style>
    <link id="ApplicationRoot" rel="AppRoot" href="/xxx/" /><script type="text/javascript" src="/xxx/scripts/Utility.js">
    </script>
    <script type="text/javascript" language="javascript" sr="cxxx/BlockIFrame.js">
    </script>
    <link href="/xxx/WebResource.axd?d=9IeP9KvvsN3Ik1tvDsOJspkYjKE_KnZBT8bvXX7faYYRqxbjgHhLZKgtKfFSoL4-itgpmZrgTG68lyrA-SRm95xnEdLdUHa4j1nbnB_xoc_0zNWbtGMRDJOai6Kgu4UI0Dg5lw2&amp;t=634950712700000000" type="text/css" rel="stylesheet" class="Telerik_stylesheet" />
    </head>
    
    1 回复  |  直到 12 年前
        1
  •  0
  •   Aaron Powell    12 年前

    如果您能够注入自己的JavaScript,则可以注入 X-UA-Compatible 元标签。

    此代码将注入元标记并强制IE在 模式,这意味着IE将其视为标准模式:

    var meta = document.createElement('meta');
    meta.setAttribute('http-equiv', 'x-ua-compatible');
    meta.setAttribute('content', 'IE=edge');
    
    document.getElementsByTagName('head')[0].appendChild(meta);
    

    You can learn about the meta tag here.