And*_*ndy 2 javascript xhtml w3c-validation
我有这段代码:
<script language="javascript" type="text/jscript">
document.write("<img src='http://dm.leadgenesys.com/jpgp.lgt?en=P.........TP_Q=&ur=' + escape(document.referrer) + '' border='0' alt='no alt' />");
</script>
Run Code Online (Sandbox Code Playgroud)
并且......当我尝试验证它时,我收到了这个错误:
文档类型不允许元素"img"在这里
... rer)+'"border ="0"alt ="no alt"/>');
上面提到的元素是在不允许的上下文中找到的.这可能意味着您有错误的嵌套元素 - 例如"body"部分中的"style"元素而不是"head"内部 - 或者两个重叠的元素(不允许).
知道如何才能使这个JavaScript符合W3c标准吗?
简单:不要尝试将您的JavaScript验证为HTML.
你可以通过多种方式实现这一点......但到目前为止最好的方法是将它移到一个单独的JS文件中,然后从短脚本中调用它
<body>
...
<script type="text/javascript" language="javascript">WriteImage();</script>
...
</body>
Run Code Online (Sandbox Code Playgroud)
......或者更好的是,document.write()完全抛弃并在加载后操纵DOM.
另一种使验证器静音的方法......
这样说:
<script type="text/javascript">
/* <![CDATA[ */
your_javascript_here("<" + ... ;
/* ]]> */
</script>
Run Code Online (Sandbox Code Playgroud)
CDATA部分应该足够用于验证器,/*样式注释*/适用于不识别CDATA标记的旧浏览器(否则会破坏javascript).