<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>符合WEB标准的文字间隔滚动JS代码</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
var marqueeContent=new Array();
marqueeContent[0]='小泉称若自民党在议会选举中失败';
marqueeContent[1]='布什发表广播讲话';
marqueeContent[2]='伊斯兰武装炸毁印控克什米尔铁路导致列车出轨';
marqueeContent[3]='布雷默:即使抓住了萨达姆也难以结束抵抗行动';
var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量
var marqueeId=0;
var marqueeDelay=3000; //更新时间,毫秒
var marqueeHeight=20; //容器高度function initMarquee() {
var str=marqueeContent[0];
document.write('<div id="marqueeBox" style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
marqueeId++;
marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
}
function startMarquee() {
var str=marqueeContent[marqueeId];
marqueeId++;
if(marqueeId>=marqueeContent.length) marqueeId=0;
if(document.getElementById("marqueeBox").childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
document.getElementById("marqueeBox").appendChild(nextLine);
}
else {
document.getElementById("marqueeBox").childNodes[0].innerHTML=str;
document.getElementById("marqueeBox").appendChild(document.getElementById("marqueeBox").childNodes[0]);
document.getElementById("marqueeBox").scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",20);
}
function scrollMarquee() {
document.getElementById("marqueeBox").scrollTop++;
if(document.getElementById("marqueeBox").scrollTop%marqueeHeight==(marqueeHeight-1)){
clearInterval(marqueeInterval[1]);
}
}
initMarquee();
</script>
</body>
</html>w3c 验证返回的错误信息是:
Line 21, Column 214: document type does not allow element "div" here
…al(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>符合WEB标准的文字间隔滚动JS代码</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<script type="text/javascript">
var marqueeContent=new Array();
marqueeContent[0]='小泉称若自民党在议会选举中失败';
marqueeContent[1]='布什发表广播讲话';
marqueeContent[2]='伊斯兰武装炸毁印控克什米尔铁路导致列车出轨';
marqueeContent[3]='布雷默:即使抓住了萨达姆也难以结束抵抗行动';
var marqueeInterval=new Array(); //定义一些常用而且要经常用到的变量
var marqueeId=0;
var marqueeDelay=3000; //更新时间,毫秒
var marqueeHeight=20; //容器高度function initMarquee() {
var str=marqueeContent[0];
document.write('<div id="marqueeBox" style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
marqueeId++;
marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
}
function startMarquee() {
var str=marqueeContent[marqueeId];
marqueeId++;
if(marqueeId>=marqueeContent.length) marqueeId=0;
if(document.getElementById("marqueeBox").childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
document.getElementById("marqueeBox").appendChild(nextLine);
}
else {
document.getElementById("marqueeBox").childNodes[0].innerHTML=str;
document.getElementById("marqueeBox").appendChild(document.getElementById("marqueeBox").childNodes[0]);
document.getElementById("marqueeBox").scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",20);
}
function scrollMarquee() {
document.getElementById("marqueeBox").scrollTop++;
if(document.getElementById("marqueeBox").scrollTop%marqueeHeight==(marqueeHeight-1)){
clearInterval(marqueeInterval[1]);
}
}
initMarquee();
</script>
</body>
</html>w3c 验证返回的错误信息是:
Line 21, Column 214: document type does not allow element "div" here
…al(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
解决方案 »
- js的script标签有这种属性吗?
- jQuery动态创建的对象,为啥在页面原文件中找不到?
- 关于过滤字符串的问题
- 在HTML中如何一个HTML文件,除了用框架
- js获得动态生成对象的属性有问题?
- jPages.js在jquery交出$后提示出错
- 我要在页面调入时设一文字的颜色 用 onload=document.all('id_row1').style.color ='#ff0000'; 为什么没作用
- 求救,请各位高手帮忙。
- 怎样在客户端用Javascript 实现检测用户输入是否为数字或日期!!!!
- 如何判断一个输入框被选中阿,再线等待?
- 请教一个函数停止的问题
- 懒人发帖--关于样式设置setAttribute("style","xxx")
另外也可能是在body中使用了应该放在head里面的元素,不过这里貌似没有。[color=#0000FF]这个是样式么?没见过这种写法,个人认为这里有点诡异
把那个document.write改成document.createElement
或者这样:
var string = "";
string += '<';
string += 'div id="marqueeBox" ';
string += 'style="overflow:hidden;height:'+marqueeHeight+'px" ';
string += 'onmouseover="clearInterval(marqueeInterval[0])" ';
string += 'onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)">';
string += '<';
string += 'div>'+str+'<'+'/div><'+'/div>';
document.write(string);
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>符合WEB标准的文字间隔滚动JS代码</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
</head>
<body >
<script type="text/javascript">
var marqueeContent=[];
marqueeContent[0]='小泉称若自民党在议会选举中失败';
marqueeContent[1]='布什发表广播讲话';
marqueeContent[2]='伊斯兰武装炸毁印控克什米尔铁路导致列车出轨';
marqueeContent[3]='布雷默:即使抓住了萨达姆也难以结束抵抗行动';
var marqueeInterval=[]; //定义一些常用而且要经常用到的变量
var marqueeId=0;
var marqueeDelay=1000; //更新时间,毫秒
var marqueeHeight=20; //容器高度function initMarquee() {
var str=marqueeContent[0];
document.write('<div id="marqueeBox" style="overflow:hidden;height:'+marqueeHeight+'px" onmouseover="clearInterval(marqueeInterval[0])" onmouseout="marqueeInterval[0]=setInterval(\'startMarquee()\',marqueeDelay)"><div>'+str+'</div></div>');
marqueeId++;
marqueeInterval[0]=setInterval("startMarquee()",marqueeDelay);
}function startMarquee() {
var str=marqueeContent[marqueeId];
marqueeId++;
if(marqueeId>=marqueeContent.length) marqueeId=0;
if(document.getElementById("marqueeBox").childNodes.length==1) {
var nextLine=document.createElement('DIV');
nextLine.innerHTML=str;
document.getElementById("marqueeBox").appendChild(nextLine);
}
else {
document.getElementById("marqueeBox").childNodes[0].innerHTML=str;
document.getElementById("marqueeBox").appendChild(document.getElementById("marqueeBox").childNodes[0]);
document.getElementById("marqueeBox").scrollTop=0;
}
clearInterval(marqueeInterval[1]);
marqueeInterval[1]=setInterval("scrollMarquee()",20);
}function scrollMarquee() {
document.getElementById("marqueeBox").scrollTop++;
if(document.getElementById("marqueeBox").scrollTop%marqueeHeight==(marqueeHeight-1)){
clearInterval(marqueeInterval[1]);
}
}initMarquee();
</script>
</body > </html>