打印print()函数在fierfox下失效(在线等待) 呵呵,自己找到问题了,是PrintTable(main)要这样写PrintTable('main') 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有个问题像问下就是,为什么ie这样写PrintTable(main) 都可以调用,而firefox下不行 你的代码中有多处的错误。就函数PrintTable来说,参数名虽然叫ID.但内部都是把他做为对象来访问的.因此,你加入引号后正确是很奇怪的.另外,通过ID直接访问对象方法也是不推荐的.比如好的方法是使用 document.getElementById,function PrintTable(obj){ var mStr; mStr = window.document.body.innerHTML; var mWindow = window; window.document.body.innerHTML = obj.innerHTML; mWindow.print(); window.document.body.innerHTML = mStr;}pritTable(document.getElementById('main'));或者,这样做.function PrintTable(id){ var obj = document.getElementById(id); var mStr; mStr = window.document.body.innerHTML; var mWindow = window; window.document.body.innerHTML = obj.innerHTML; mWindow.print(); window.document.body.innerHTML = mStr;}pritTable('main');另外你的代码中还有多处明显的错误.比如,你把foreach标签放到了body的外边.这样就会在循环中生成多个body体.类似这样的错误楼主查一下吧. <html:html>放的地方也不正确。楼主最好对照浏览器上生成的代码进行一下确认。 因为你传递的是是字符串,并不是变量,所以你用PrintTable(main)是错的如果你是这样的<body onload="AreaAutoHeight.iniAutoRow('Textarae');var main='main'; PrintTable(main);close()"> 那你用PrintTable(main)是正确的,否则就是错误的在IE下你不加引号能正确我觉得奇怪我纠正syukugai 几点“就函数PrintTable来说,参数名虽然叫ID. 但内部都是把他做为对象来访问的. 因此,你加入引号后正确是很奇怪的. ”这个说法不对的,在IE下是可以直接Id.innerHTML这么写的,是应该加引号,不加引号不正确的才对只是觉得奇怪为什么在IE下你不加引号能正确当然不建议Id.innerHTML这种写法,因为不兼容 还真不知道 'main'.innerHTML这样是正确的。刚刚用这个理论在我的机器上验证了一下。结果证明,在这个理论下我机器上的IE6和FF3全部都是坏掉的。 的确,'main'.innerHTML 这样写是不对的,我刚刚在ie7下也试过了 你直接'main'.innerHTML 这个当然是不对的!!但是用id.innerHTML 是正确的啊 这个说法不对的,在IE下是可以直接Id.innerHTML这么写的,是应该加引号,不加引号不正确的才对你的这句话该怎么理解,愿听其详? 在IE下是可以直接Id.innerHTML这么写的是没错吧但是他传递的是字符串,当然要加ID引号,不加引号,那传递的就是空值 不明白你在谈什么问题?难道下面这样的代码在你的浏览器上运行是正确的?function PrintTable(Id){ ...... window.document.body.innerHTML = Id.innerHTML; ......}PrintTable('main'); 我说得是在IE下是可以直接Id.innerHTML这么写的并没有说放在作为参数然后再Id.innerHTML这么写,你说他加入引号是错误的,那当然是不对的,因为他传递的不是变量或者变量是空值也许我开始理解错你的意思你是想说Id作为参数时再Id.innerHTML这么写就是错的,还以为你说他加入引号是错误的 我说得是在IE下是可以直接Id.innerHTML这么写的并没有说放在作为参数然后再Id.innerHTML这么写,你说他加入引号是错误的,那当然是不对的,因为他传递的不是变量或者变量是空值也许我开始理解错你的意思你是想说Id作为参数时再Id.innerHTML这么写就是错的,还以为你说他加入引号是错误的 HOHO,明白你的想法了。另外,IE下是支持直接通过 ID名访问对象的。也就是说 main.innerHTML 在IE是好用。FF下不支持这样的用法以。 getElementsByTagName为什么获取不了? 高手请进!十万火急! iframe跨域提交表单 后获取iframe的内容(访问拒绝) 已经几天了 hookee 刚才结贴过快,soryy 怎么样让关闭按钮居右显示??? javascript读取excel问题 高手进(在线等) 50分求非常全的javascript帮助文档 请教回调函数的参数问题 js如何禁止点右上角的×关闭浏览器 分享一个原创的导航菜单(支持XML导入、换肤)! Microsoft的JScript与JavaScript有什么不同? 想用ASP或JS生成与PHP中的MD5函数结果一致的校验码,如何实现? 买票==no
就函数PrintTable来说,参数名虽然叫ID.
但内部都是把他做为对象来访问的.
因此,你加入引号后正确是很奇怪的.
另外,通过ID直接访问对象方法也是不推荐的.
比如好的方法是使用 document.getElementById,function PrintTable(obj){
var mStr;
mStr = window.document.body.innerHTML;
var mWindow = window;
window.document.body.innerHTML = obj.innerHTML;
mWindow.print();
window.document.body.innerHTML = mStr;
}pritTable(document.getElementById('main'));或者,这样做.
function PrintTable(id){
var obj = document.getElementById(id);
var mStr;
mStr = window.document.body.innerHTML;
var mWindow = window;
window.document.body.innerHTML = obj.innerHTML;
mWindow.print();
window.document.body.innerHTML = mStr;
}pritTable('main');另外你的代码中还有多处明显的错误.
比如,你把foreach标签放到了body的外边.
这样就会在循环中生成多个body体.
类似这样的错误楼主查一下吧.
楼主最好对照浏览器上生成的代码进行一下确认。
因为你传递的是是字符串,并不是变量,所以你用PrintTable(main)是错的如果你是这样的
<body
onload="AreaAutoHeight.iniAutoRow('Textarae');var main='main'; PrintTable(main);close()">
那你用PrintTable(main)是正确的,否则就是错误的在IE下你不加引号能正确我觉得奇怪我纠正syukugai 几点“就函数PrintTable来说,参数名虽然叫ID.
但内部都是把他做为对象来访问的.
因此,你加入引号后正确是很奇怪的. ”这个说法不对的,在IE下是可以直接Id.innerHTML这么写的,是应该加引号,不加引号不正确的才对只是觉得奇怪为什么在IE下你不加引号能正确当然不建议Id.innerHTML这种写法,因为不兼容
还真不知道 'main'.innerHTML这样是正确的。
刚刚用这个理论在我的机器上验证了一下。
结果证明,在这个理论下我机器上的IE6和FF3全部都是坏掉的。
的确,'main'.innerHTML 这样写是不对的,我刚刚在ie7下也试过了
这个说法不对的,在IE下是可以直接Id.innerHTML这么写的,是应该加引号,不加引号不正确的才对你的这句话该怎么理解,愿听其详?
但是他传递的是字符串,当然要加ID引号,不加引号,那传递的就是空值
难道下面这样的代码在你的浏览器上运行是正确的?function PrintTable(Id){
......
window.document.body.innerHTML = Id.innerHTML;
......
}PrintTable('main');
明白你的想法了。
另外,IE下是支持直接通过 ID名访问对象的。
也就是说 main.innerHTML 在IE是好用。
FF下不支持这样的用法以。