document.write("一个iframe"),然后在方法里面获取它的name,现在的问题是在IE显示正常,在FireFox显示不正常!

a11377815 2007-11-27 03:20:45
document.write('<iframe name="SF" frameborder="0" src="SeachPatient.aspx" style="visibility:visible; position:absolute; left:-800px; top:150px; width:571px; height:276px; z-size:1px;"></iframe>');
function showdiv()
{
SFSHOW(document.getElementById("SF"),-800,200,200,1);
}
function SFSHOW(obj,from,to,speed,show)
{
realLeft=parseInt(document.body.scrollLeft);
SFObj=obj;
SFFrom=from+realLeft;
SFTo=to+realLeft;
SFSpeed=speed;
SFMode=show;

obj.style.posLeft=from;
obj.style.visibility="visible";
}


在FireFox2.0显示不正常!提示错误:obj.style.posLeft=from;这行

我用alert(obj)提示为空
...全文
396 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
kenesyu 2007-11-29
  • 打赏
  • 举报
回复
在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在在
a11377815 2007-11-27
  • 打赏
  • 举报
回复
正是我需要的,最近经常用js,因为以前的系统需要修改,他们都是asp+js,1999年开始做的系统,到现在已经是乱七八糟了
0xff 2007-11-27
  • 打赏
  • 举报
回复
如果你只是临时用一下 javascript 凑或着用,这样的代码改改能用就行……
如果你要经常用到 javascript ,建议还是先看一下 javascript 面相对象的相关基础吧,网上的文章很多~
刚搜的一个:
http://msdn.microsoft.com/msdnmag/issues/07/05/javascript/default.aspx?loc=zh
a11377815 2007-11-27
  • 打赏
  • 举报
回复
楼上的看18楼的代码
多了dtimer = window.setTimeout("SFH();", 0, "JavaScript");
还有多了一个SFH()方法
就知道写上面那些有什么用了
0xff 2007-11-27
  • 打赏
  • 举报
回复
function SFH()
{
var left = parseInt(SFObj.style.left) + SFSpeed;
SFObj.style.left = left + 'px';
if((SFSpeed>=0 && left <SFTo) || (SFSpeed <0 && left > SFTo))
{
dtimer = window.setTimeout("SFH();", 0, "JavaScript");
}
else
{
SFObj.style.left=SFTo + 'px';
if (SFMode==0)
SFObj.style.visibility="hidden";
}
}
chuxue1342 2007-11-27
  • 打赏
  • 举报
回复
function SFSHOW(obj,from,to,speed,show)
{
realLeft=parseInt(document.body.scrollLeft);
SFObj=obj;
SFFrom=from+realLeft;
SFTo=to+realLeft;
SFSpeed=speed;
SFMode=show;

obj.style.posLeft=from;
obj.style.visibility="visible";
}
-----------------------------------------------
不知道你这个方法是什么意思!有用的就这两句:
obj.style.posLeft=from;
obj.style.visibility="visible";
你上面写那么多干嘛!
问题应该出在posLeft上面.可能firefox不支持你改成left试试或者
if(typeof obj.style.posLeft!=undefined)
{
obj.style.posLeft=from;

}
else{
obj.style.left=from;
}
a11377815 2007-11-27
  • 打赏
  • 举报
回复
原来版本obj.style.left=from;改成obj.style.posLeft=from;
a11377815 2007-11-27
  • 打赏
  • 举报
回复
显示iframe的js都在上面了,但是就是不知道为什么显示不了!
a11377815 2007-11-27
  • 打赏
  • 举报
回复
var SFObj;
var SFFrom;
var SFTo;
var SFSpeed;
var SFMode;
var SFtype;
document.write('<iframe name="SF" id="SF" frameborder="0" src="SeachPatient.aspx" style="visibility:visible; position:absolute; left:-800px; top:150px; width:571px; height:276px;"></iframe>');
function showdiv()
{
SFSHOW(document.getElementById("SF"),-800,200,200,1);
}
function SFSHOW(obj,from,to,speed,show)
{
realLeft=parseInt(document.body.scrollLeft);
SFObj=obj;
SFFrom=from+realLeft;
SFTo=to+realLeft;
SFSpeed=speed;
SFMode=show;

obj.style.left=from;
obj.style.visibility="visible";
dtimer = window.setTimeout("SFH();", 0, "JavaScript");
}

function SFH()
{
SFObj.style.posLeft += SFSpeed;
if ( (SFSpeed>=0 && SFObj.style.posLeft<SFTo) || (SFSpeed<0 && SFObj.style.posLeft>SFTo) )
{
dtimer = window.setTimeout("SFH();", 0, "JavaScript");
}
else
{
SFObj.style.posLeft=SFTo;
if (SFMode==0)
SFObj.style.visibility="hidden";
}
}
0xff 2007-11-27
  • 打赏
  • 举报
回复
obj.style.left = from + 'px';
0xff 2007-11-27
  • 打赏
  • 举报
回复
……
posLeft没有,直接用left不就是。。。
0xff 2007-11-27
  • 打赏
  • 举报
回复
刚才没细看LZ的代码,其实并没有涉及到操作iframe的document……
document.getElementById是能用的~
至于后面的没错误也看不到iframe的问题,LZ还是看看其他地方有没有错吧,特别是Firefox的样式属性和IE不太一样
a11377815 2007-11-27
  • 打赏
  • 举报
回复
先谢谢楼上的,不过,还是有问题...
继续请教:
document.write(' <iframe name="SF" id="SF" frameborder="0" src="SeachPatient.aspx" style="visibility:visible; position:absolute; left:-800px; top:150px; width:571px; height:276px; z-size:1px;"> </iframe> ');
function showdiv()
{
SFSHOW(window.frames["SF"],-800,200,200,1);
}
function SFSHOW(obj,from,to,speed,show)
{
realLeft=parseInt(document.body.scrollLeft);
SFObj=obj;
SFFrom=from+realLeft;
SFTo=to+realLeft;
SFSpeed=speed;
SFMode=show;

obj.style.posLeft=from;
obj.style.visibility="visible";
}


运行到obj.style.posLeft这句又错了
0xff 2007-11-27
  • 打赏
  • 举报
回复
……和document.getElementById一样,不过getElementById取到的是DOM元素,frames[]能取到iframe本身;
document.getElementById("SF") ~= window.frames["SF"]
window.frames["SF"]里的"SF"在IE下应是Id,Firefox下应是Name。
a11377815 2007-11-27
  • 打赏
  • 举报
回复
还是不是很明白!我用alert(window.frames["SF"].document.getElementById("SF"));
提示为null
不是这样写吗?
0xff 2007-11-27
  • 打赏
  • 举报
回复
要用window.frames[]~
IE 是用Id索引,Firefox 是用 Name 索引。
a11377815 2007-11-27
  • 打赏
  • 举报
回复
楼上能说清楚点吗?不是很明白你的意思!
0xff 2007-11-27
  • 打赏
  • 举报
回复
document.getElementById取到的iframe是不能直接操作里面的document的,需要这么取:frames[id].document

在IE下,是frames[id];
firefox是frames[name]。
a11377815 2007-11-27
  • 打赏
  • 举报
回复
现在是firefox下出现这样的问题,IE正常
blueiv 2007-11-27
  • 打赏
  • 举报
回复
价格判断的吧,不同的浏览器用不同的处理方法,具体的处理代码网上有的是
加载更多回复(6)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧