jquery - 需要有关 : jquery prepend doctype to html 的帮助

标签 jquery html doctype prepend

这是我的情况:

  1. 我正在编辑应用程序的 CSS 样式表。
  2. 我只能编辑 CSS 样式表(除非我可以创造性地使用 CSS glom 到另一个文件,或者可能在现有的 .js 中添加一个小的 jQuery 前置语句)
  3. 应用程序仅兼容 ie6、ie7 和 ie8。他们从不使用 FireFox,这不是一种选择。

寻求帮助:

1) 我想我需要使用 jQuery 来“prepend/prependTo”一个“doctype”到

html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"

如果没有 !doctype,它会使 ie8 进入 quirksmode,当然不接受任何样式,例如“input[type=checkbox]”

我之前没有使用过prepend。你能帮我用完整和正确的语法来做以下事情吗:

当前:<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

需要:<doctype html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">

这对我还没有用 $("html ").prepend("doctype ")

最佳答案

这不是 <doctype html> .这是:

<!DOCTYPE html>
<html (xmlns or any other attributes you want)>

<!DOCTYPE不是一个元素。它有 <!在开头,这对元素无效。这是“doctype 声明”,在初始解析后无法更改。

即使在 DOM 界面允许您移动/替换 DocumentType 的浏览器上表示 doctype 声明的节点,这没有在 Quirks 和 Standards 模式之间切换的效果,这是在初始加载时决定的。您不能在模式之间改变文档。

可以从现有文档加载新文档,但模式已更改:

<!-- no doctype, loads in Quirks Mode (BackCompat) -->
<html>
    <!-- rest of the document, then at the end: -->

    <script>
        alert('now in compatMode '+document.compatMode);
        if (document.compatMode==='BackCompat') {
            setTimeout(function() {
                var markup= document.documentElement.innerHTML;
                markup= '<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">'+markup+'</html>';
                document.open();
                document.write(markup);
                document.close();
            }, 0);
        }
    </script>
</html>

但我强烈建议不要这样做。它很丑陋,会重置任何状态并在加载时间结束时重绘,并且对脚本有各种负面影响。

如果您想要标准模式,您确实需要将文档类型添加到 HTML 本身。如果您绝对不能接触该应用程序,如何使用 ISAPI 过滤器(假设您的 Web 服务器是 IIS)将文档类型添加到它的 HTML 输出中?

关于jquery - 需要有关 : jquery prepend doctype to html 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4493845/

相关文章:

javascript - 我一直在尝试似乎没有让放大的弹出窗口正常工作

jquery - 如何仅选择窗口中可见的元素

html - Css 中的相机 View Angular 边框

html - 有一个固定的导航栏,但仍然保持滚动活跃

JQuery 选择多个 paypal 按钮

jquery - 使用 jQuery isotope 插件设置宽度和高度

javascript - HTML5 < Canvas > : Performance implications of drawImage()

xhtml - rel= 属性可以包含任何字符串字符并且仍然有效吗?

css - 对于标准模式,IE 是否需要条件 CSS?

php - Codeigniter 文档类型