美好的一天,
我正在开发一个c#web应用程序,一切正常,直到我添加一个普通的JavaScript。
html代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="scripts/JScript.js" type="text/javascript"></script>
<asp:ContentPlaceHolder id="headContent" runat="server">
</asp:ContentPlaceHolder>
</head>
<body>
<asp:ContentPlaceHolder id="title" runat="server"></asp:ContentPlaceHolder>
<asp:ContentPlaceHolder id="bodyContent" runat="server"></asp:ContentPlaceHolder>
<!-- some code here -->
</body>
JScript.js
是放入的JavaScript。
JavaScript代码如下:
function getCookie(catId) {
var ebRand = Math.random() + '';
ebRand = ebRand * 1000000;
document.write('<scr' + 'ipt src="HTTP://bs.serving-sys.com/Serving/ActivityServer.bs?cn=as&ActivityID=553971&rnd=' + ebRand + '"></scr' + 'ipt>');
}
单击链接按钮时将触发此JavaScript函数。
我在IE中遇到错误,但Chrome和Mozilla工作正常。
我在IE控制台中的错误是
HTML1527: DOCTYPE expected. The shortest valid doctype is "<!DOCTYPE html>".
在Google搜索后,我尝试输入
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
作为新DOCTYPE
,但它也不起作用。
我试试了
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
在<head></head>
但我在IE中仍然会遇到同样的错误。
ContentPlaceHolder
是否存在问题?
除此之外,我还去了W3C标记验证服务部门对地址进行了一些验证:
转到http://validator.w3.org/check投放<script src="HTTP://bs.serving-sys.com/Serving/ActivityServer.bs?cn=as&ActivityID=553971&rnd=20079.082210606393"></script>
同样。
但不明白验证结果是什么意思。
请建议。
答案 0 :(得分:1)
IE发出关于<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
的警告,因为此类字符串为not a valid doctype according to HTML5。这样的警告对任何事情都没有影响。这只是HTML5传福音的一部分。
将其更改为<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
后,问题已被删除。但是您可能已经看到了使用某些具有错误doctype的缓存副本的结果。使用新文件(使用新名称)进行测试可以解决此问题。
当然,这样的代码不会验证,因为ASP标记是按字面意思理解并解释为body
内容,但这是一个不同的问题。
实际行动是按照建议使用<!DOCTYPE html>
。例如,如果您仍希望针对XHTML 1.0规范进行验证,则可以使用验证器的用户界面来覆盖doctype。
但这不是一个大问题;你也可以简单地忽略警告。如果您有一些功能错误,则它们是由其他内容引起的,应该单独询问,并提供足够的数据。