需要帮助:jquery prepend doctype to html

这是我的情况:

>我正在编辑应用程序的CSS样式表.
>我只能编辑CSS样式表(除非我可以创建性地使用CSS浏览另一个文件,或者可能在现有的.js中添加一个小的jQuery prepend语句)
>申请仅为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.你能帮我解决一下如何制作以下内容的完整而正确的语法:

CURRENT:< 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接口允许您移动/替换表示doctype声明的DocumentType节点的浏览器上,这也不具有在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>

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

如果您想要标准模式,您确实需要将doctype添加到HTML本身.如果您绝对无法触摸该应用程序,那么如何使用ISAPI筛选器(假设您的Web服务器是IIS)将doctype添加到其HTML输出中?

相关文章

jQuery插件的种类 1、封装对象方法 这种插件是将对象方法封装起来,用于对通过选择器获取的jQuery对象进...
扩展jQuery插件和方法的作用是非常强大的,它可以节省大量开发时间。 入门 编写一个jQuery插件开始于给...
最近项目中需要实现3D图片层叠旋转木马切换的效果,于是用到了jquery.roundabout.js。 兼容性如图: ht...
一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异...
AMD 模块 AMD(异步模块定义,Asynchronous Module Definition)格式总体的目标是为现在的开发者提供一...