在我的Javascript代码中,我有以下一行:
document.write('<style type="text/css">@import "style_mobile.css";</style>');
Netbeans似乎讨厌这个,并给我一条错误信息:
XHTML元素&#34;风格&#34;不允许作为XHTML元素&#34;脚本&#34;在这 上下文。
只是为了看看它是否有所作为,我改变了行在外面使用双引号:
document.write("<style type=\"text/css\">@import \"style_mobile.css\";</style>");
仅成功将错误更改为此警告:
预期属性&#34; {1}&#34;与元素相关联 &#34;类型&#34;
据我所知,单引号或双引号都不会影响代码的工作原理,所以我不确定为什么Netbeans会提出问题。我可以忽视Netbeans&#39;警告,但我渴望让我的代码尽可能清洁和符合标准。在我的代码中有类似于上面的行,并且所有黄色和红色标记都是一个眼睛。
我当前的文档类型是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
document.write
函数的正确格式是什么,以便它能够实现我尝试做的事情,但是如果没有Netbeans向我发出警告和错误,它会这样做?或者代码是合法的,在这种情况下,有什么方法可以告诉Netbeans让我一个人呆着?
答案 0 :(得分:1)
出于某种原因,它不允许我发表评论,所以即使我认为这不一定是答案,我也会在此发表评论。
首先,显示的document.write()不适用于所有双引号。用双引号引用整个字符串,然后在整个字符串中使用单引号作为两个子引号。
就document.write()的内容而言,我对@include并不熟悉,但我会对我认为你想要做的事情进行一次尝试:
document.write ("<link rel='stylesheet' type='text/css' href='style_mobile.css'>");
答案 1 :(得分:1)
我通过完全不使用document.write
并使用Javascript代码将节点和元素附加到文档树来解决了这个问题。
所以,而不是:
document.write('<style type="text/css">@import "style_mobile.css";</style>');
...我改用它:
var css = '@import "style_mobile.css";'
var header = document.getElementsByTagName('head')[0];
var style = document.createElement('style');
style.setAttribute('type', 'text/css');
style.appendChild(document.createTextNode(css));
header.appendChild(style);
是的,这是更多的代码和工作,但我认为它可以提供更稳定和可靠的代码。