JS代码不兼容火狐,这个JS主要是漂浮在网页中的一个广告图?请高手帮帮忙怎么办?下面是JS代码。谢谢。

varxPos=300;varyPos=200;varstep=1;vardelay=30;varheight=0;varHoffset=0;varWoffset=0;v... var xPos = 300;
var yPos = 200;
var step = 1;
var delay = 30;
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var interval;
img1.style.top = yPos;
function changePos()
{
width = document.body.clientWidth;
height = document.body.clientHeight;
Hoffset = img1.offsetHeight;
Woffset = img1.offsetWidth;
img1.style.left = xPos + document.body.scrollLeft;
img1.style.top = yPos + document.body.scrollTop;
if (yon)
{yPos = yPos + step;}
else
{yPos = yPos - step;}
if (yPos < 0)
{yon = 1;yPos = 0;}
if (yPos >= (height - Hoffset))
{yon = 0;yPos = (height - Hoffset);}
if (xon)
{xPos = xPos + step;}
else
{xPos = xPos - step;}
if (xPos < 0)
{xon = 1;xPos = 0;}
if (xPos >= (width - Woffset))
{xon = 0;xPos = (width - Woffset); }
}

function start()
{
img1.visibility = "visible";
interval = setInterval('changePos()', delay);
}
function pause_resume()
{
if(pause)
{
clearInterval(interval);
pause = false;}
else
{
interval = setInterval('changePos()',delay);
pause = true;
}
}
start();
在火狐浏览器,无法在窗口中移动。
展开
 我来答
百度网友cecc33a
2013-02-27 · TA获得超过345个赞
知道小有建树答主
回答量:119
采纳率:0%
帮助的人:132万
展开全部
var xPos = 300;
var yPos = 200;
var step = 1;
var delay = 30
var height = 0;
var Hoffset = 0;
var Woffset = 0;
var yon = 0;
var xon = 0;
var pause = true;
var img1 = document.getElementById("img1");
var interval;img1.style.top = yPos;
function changePos() {
width = document.documentElement.clientWidth;
height = document.documentElement.clientHeight;
Hoffset = img1.offsetHeight;
Woffset = img1.offsetWidth;
img1.style.left = (xPos + document.documentElement.scrollLeft) + "px";
img1.style.top = (yPos + document.documentElement.scrollTop) + "px";
if (yon){
yPos = yPos + step;
}else{
yPos = yPos - step;
}
if (yPos < 0){
yon = 1;yPos = 0;
}
if (yPos >= (height - Hoffset)){
yon = 0;yPos = (height - Hoffset);
}
if (xon){
xPos = xPos + step;
}else{
xPos = xPos - step;
}
if(xPos < 0){
xon = 1;xPos = 0;
}
if(xPos >= (width - Woffset)){
xon = 0;xPos = (width - Woffset);
}
}
function start(){
img1.style.visibility = "visible";
interval = setInterval(changePos, delay);
}
function pause_resume(){
if(pause){
clearInterval(interval);
pause = false;
}else{
interval = setInterval(changePos,delay);
pause = true;
}
}
start();
=======================
注意你的网页内的对应广告所在的DIV层,要设置<div id="img1"></div>
=======================

帮你修改好了,其实你这段JS代码要兼容FF的话,也很简单,注意以下几点:

1、FF要求任何一个网页内的对象,必须要有声明,所以img1.offsetHeight在使用前,必须先声明,所以要有var img1 = documment.getElementById("img1");声明img1变量是DIV层ID为img1的对象

2、XHTML1.0网页标准后,基本JS代码,在FF和Chrome下,都不支持document.body了,所以要全部改为document.documentElement

3、在设置网页对象的偏移量属性的时候(包括高宽属性),必须要添加px单位值,所以img1.style.left = xPos + document.documentElement.scrollLeft 这句的末尾要添加"px";

以上三点不严格的代码,之所以在IE中会被执行,是因为IE本身没有太严格,很多时候,微软也算是太过纵容开发者了,他们在IE内部会自动将JS不完善的代码,解读成完善的。

所以IE有时候甚至还容许HTML代码没有闭合标签,呵呵,这是题外话了。
火狐
2014-02-26 · Firefox,最快最安全的上网体验
火狐
Mozilla Firefox火狐浏览器,是一款开放安全的开源浏览器,全球拥有5亿用户。
向TA提问
展开全部
  您好!很高兴为您答疑!

网页内的对应广告所在的DIV层,要设置<div id="img1"></div>,任何一个网页内的对象,必须要有声明,所以img1.offsetHeight在使用前,必须先声明。
  XHTML1.0网页标准后,基本JS代码,在FF和Chrome下,都不支持document.body了,所以要全部改为document.documentElement。
  您可以在火狐社区了解更多内容。希望我的回答对您有所帮助,如有疑问,欢迎继续在本平台咨询。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式