在Firefox中执行javascrip时报错了,请教!

fzb215 2008-11-24 06:54:47
在Firefox中报错
function dyniframesize(iframename) {
var pTar = null;
if (document.getElementById){
pTar = document.getElementById(iframename);
}
else{
eval('pTar = ' + iframename + ';');
}
if (pTar && !window.opera){
//begin resizing iframe
pTar.style.display="block"

if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){
//ns6 syntax
pTar.height = pTar.contentDocument.body.offsetHeight+FFextraHeight; //这里报错,FFextraHeight is not defined应该是什么啊
}
else if (pTar.Document && pTar.Document.body.scrollHeight){
//ie5+ syntax
pTar.height = pTar.Document.body.scrollHeight;
}
}
}
这个JS什么意思
<div id="right-k">
<iframe name="mainFrame" id="myTestFrameID"
onload="javascript:{dyniframesize('myTestFrameID');}"
marginwidth=0 marginheight=0 frameborder=0
src="schedule.do?method=getNewSchedule"
width="560" height="800"></iframe>
</div>
...全文
118 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
fzb215 2008-11-25
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 tolys 的回复:]
兄弟不知道你代码哪里copy的,


FFextraHeight变量是根据不同的FF浏览器版本而定的,我刚才用FF 2.xxx测试你的代码是可以的,但不知道你的版本哪个,
不过一下代码可以帮你解决问题!

JScript code
<!-- 下面这段代码加在<head>和</head>之间-->
<script language="Javascript">
var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
//extra height in px to…
[/Quote]

是的,少了两行
之前的人少写了吧
kokobox 2008-11-25
  • 打赏
  • 举报
回复
兼容问题很难搞

建议你用开源的js框架去做你像要的效果,把麻烦推给框架,把实现留给自己,如果已经有了轮子,就不要把时间用在发明轮子上了。用就好了。
TinyJimmy 2008-11-25
  • 打赏
  • 举报
回复
代码不全吧.
google上找 FFextraHeight 关键子都需要定义的

var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
var FFextraHeight=getFFVersion>=0.1? 16 : 0
上善_若水 2008-11-25
  • 打赏
  • 举报
回复
兄弟不知道你代码哪里copy的,


FFextraHeight变量是根据不同的FF浏览器版本而定的,我刚才用FF 2.xxx测试你的代码是可以的,但不知道你的版本哪个,
不过一下代码可以帮你解决问题!

<!-- 下面这段代码加在<head>和</head>之间-->
<script language="Javascript">
var getFFVersion=navigator.userAgent.substring(navigator.userAgent.indexOf("Firefox")).split("/")[1]
//extra height in px to add to iframe in FireFox 1.0+ browsers
var FFextraHeight=getFFVersion>=0.1? 16 : 0

function dyniframesize(iframename) {
var pTar = null;
if (document.getElementById){
pTar = document.getElementById(iframename);
}
else{
eval('pTar = ' + iframename + ';');
}
if (pTar && !window.opera){
//begin resizing iframe
pTar.style.display="block"

if (pTar.contentDocument && pTar.contentDocument.body.offsetHeight){
//ns6 syntax
pTar.height = pTar.contentDocument.body.offsetHeight+FFextraHeight;
}
else if (pTar.Document && pTar.Document.body.scrollHeight){
//ie5+ syntax
pTar.height = pTar.Document.body.scrollHeight;
}
}
}
</script>

<iframe id="myTestFrameID"
onload="javascript:{dyniframesize('myTestFrameID');}" marginwidth=0 marginheight=0 frameborder=0 scrolling=no src="book/index.asp" width="550" height="100" frameborder="0"></iframe>


s_liangchao1s 2008-11-25
  • 打赏
  • 举报
回复
代码不全吧?
wj_18 2008-11-25
  • 打赏
  • 举报
回复
微软跟太多浏览器支持的JS标准都不一样
andy0618 2008-11-24
  • 打赏
  • 举报
回复
国际有一套W3C标准来定义浏览器执行的代码的

微软IE和其他浏览器商,都在这个标准基础上扩展了自己定义的js代码,这样就出现浏览器不兼容的问题了
海会圣贤 2008-11-24
  • 打赏
  • 举报
回复
那就是js不兼容啊,不兼容就别用啊!
andy0618 2008-11-24
  • 打赏
  • 举报
回复
div 是层,把iframe放到层里
当iframe初始运行时,执行dyniframesize('myTestFrameID')

不过Firefox和IE在执行javascript时有很多不一样的地方

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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