验证使用JavaScript加载CSS

验证使用JavaScript加载CSS,javascript,css,validation,xhtml,Javascript,Css,Validation,Xhtml,我有两个样式表,一个默认样式和一个圣诞节样式。我希望圣诞节样式在12月加载,默认值在每隔一个月使用 我已经写了下面的代码,实现了我想要的,但是如果我把它放在验证器中,我会得到错误:“DocumentType不允许元素”link“here”。我想知道我怎样才能使这段代码有效 <head> <script type="text/javascript"> var i = new Date(); var m = i.getMonth();

我有两个样式表,一个默认样式和一个圣诞节样式。我希望圣诞节样式在12月加载,默认值在每隔一个月使用

我已经写了下面的代码,实现了我想要的,但是如果我把它放在验证器中,我会得到错误:“DocumentType不允许元素”link“here”。我想知道我怎样才能使这段代码有效

<head>
    <script type="text/javascript">
        var i = new Date();
        var m = i.getMonth();
        if (m==11) {
            document.write('<link rel="stylesheet" type="text/css" href="mystyle-christmas.css" />');
        } else {
            document.write('<link rel="stylesheet" type="text/css" href="mystyle-default.css" />');
        }
    </script>
</head>

var i=新日期();
var m=i.getMonth();
如果(m==11){
文件。写(“”);
}否则{
文件。写(“”);
}

验证程序出现问题,因为您没有使用CDATA,因此验证程序将解析您的javascript。使用以下方法解决您的问题:

<head>
    <script>
    //<![CDATA[
        // Your code here
    // ]]>
    </script>
</head>

//
顺便说一句,以下是一个更好的方法:

<head>
    <script type="text/javascript">
        var i = new Date(),
            m = i.getMonth(),
            l = document.createElement( 'link' )

        l.rel = 'stylesheet'

        if ( m === 11 ) {
            l.href = 'mystyle-christmas.css'
        }
        else {
            l.href = 'mystyle-default.css'
        }

        document.getElementsByTagName( 'HEAD' )[ 0 ].appendChild( l )
    </script>
</head>

var i=新日期(),
m=i.getMonth(),
l=document.createElement('link')
l、 rel='stylesheet'
如果(m==11){
l、 href='mystyle-christmas.css'
}
否则{
l、 href='mystyle default.css'
}
document.getElementsByTagName('HEAD')[0]。appendChild(l)

更好的方法是将javascript放在外部js文件中。

由于您没有使用CDATA,验证程序出现问题,因此验证程序将解析您的javascript。使用以下方法解决您的问题:

<head>
    <script>
    //<![CDATA[
        // Your code here
    // ]]>
    </script>
</head>

//
顺便说一句,以下是一个更好的方法:

<head>
    <script type="text/javascript">
        var i = new Date(),
            m = i.getMonth(),
            l = document.createElement( 'link' )

        l.rel = 'stylesheet'

        if ( m === 11 ) {
            l.href = 'mystyle-christmas.css'
        }
        else {
            l.href = 'mystyle-default.css'
        }

        document.getElementsByTagName( 'HEAD' )[ 0 ].appendChild( l )
    </script>
</head>

var i=新日期(),
m=i.getMonth(),
l=document.createElement('link')
l、 rel='stylesheet'
如果(m==11){
l、 href='mystyle-christmas.css'
}
否则{
l、 href='mystyle default.css'
}
document.getElementsByTagName('HEAD')[0]。appendChild(l)

更好的方法是将javascript放在外部js文件中。

尝试创建元素,而不是使用
文档。编写

  var christmas = document.createElement("link");
  christmas.setAttribute("rel", "stylesheet");
  christmas.setAttribute("type", "text/css");
  christmas.setAttribute("href", "mystyle-christmas.css");

  document.getElementsByTagName("head")[0].appendChild(christmas)

尝试创建元素,而不是使用
文档。编写

  var christmas = document.createElement("link");
  christmas.setAttribute("rel", "stylesheet");
  christmas.setAttribute("type", "text/css");
  christmas.setAttribute("href", "mystyle-christmas.css");

  document.getElementsByTagName("head")[0].appendChild(christmas)

您是否只想使用javascript执行此操作?我的意思是,你可以使用任何隐藏的代码,比如C#vb.net或Phpdo,你想只使用javascript吗?我的意思是,你可以使用任何隐藏的代码,比如C#vb.net或PhpI。我同意拥有一个外部js文件将是最好的,这就是我曾经尝试过的方法,一旦我让代码在本地工作,但由于某种原因无法使其工作。关于如何在外部文件中使用我的代码,有什么建议吗?将其放在js文件中,不要在js文件中添加脚本标记。我将现有代码原样放在js文件中,但无法在html中调用它。。对不起,我知道我很笨,我以前没用过JavaScript!别忘了在html文件中添加
。我同意使用外部js文件是最好的,这是我在代码在本地工作后尝试做的,但由于某种原因无法使其工作。关于如何在外部文件中使用我的代码,有什么建议吗?将其放在js文件中,不要在js文件中添加脚本标记。我将现有代码原样放在js文件中,但无法在html中调用它。。对不起,我知道我很笨,我以前没用过JavaScript!不要忘记在html文件中添加