发现问题了,是Linux下Opera的Bug吧
在Windows的Opera下打印没问题
在Linux的Firefox下打印也没问题
现在在Firefox下运行,把原来的脚本中抽取内容的语句替换成Firefox也能兼容的代码就可以了:
// document.write(tbl.outerHTML);
document.write(document.createElement("DIV").appendChild(tbl.cloneNode(true)).parentNode.innerHTML);
不过这样又碰到一个问题,因为网页的源代码我不能修改,只能通过GreaseMonkey来重载有问题的JavaScript函数。现在碰到的问题是,怎么让重载的函数运行呢?我对JavaScript一点儿也不熟悉:(
unsafeWindow.WriteTbl = function(tblname) {
var tbl = window.opener.document.getElementById(tblname);
alert(tblname);
// alert(tbl.outerHTML);
// document.write(tbl.outerHTML);
document.write(document.createElement("DIV").appendChild(tbl.cloneNode(true)).parentNode.innerHTML);
}
WriteTbl('preview')
现在只有手动在Firebug里面输入WriteTbl('preview')才会执行。
如果是GreaseMonky用户脚本里面来抽取内容则不会成功:
window.test = function(tblname) {
var tbl = window.opener.document.getElementById(tblname);
alert(tblname);
// alert(tbl.outerHTML);
// document.write(tbl.outerHTML);
document.write(document.createElement("DIV").appendChild(tbl.cloneNode(true)).parentNode.innerHTML);
}
test('preview');
得到的是空的内容。
【 在 WTO (好五倍) 的大作中提到: 】
: 标 题: Re: 用JavaScript抽取出来的中文内容打印乱码怎么办
: 发信站: 水木社区 (Fri Aug 21 10:09:47 2009), 站内
:
:
: 【 在 Pacific493 (追求完美用户体验|chinakr@gmail.com) 的大作中提到: 】
: : 加了一句这个也不管用
: : <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
:
: 确认抽取出来的编码是utf-8的不是gbk的?
:
: : 而且在puppy linux上打印出来全部是乱码,在ubuntu上打印出来部分是乱码
: : ...................
:
: --
: 1.旗帜鲜明地反对汉语拼音字头缩写!
: 2.不遗余力地推进多行网址瘦身运动!请爱用bit.ly!
: 小技巧:图片网址可在短网址后加?.jpg,方便term用户观看。
: 3.干翻标题党!
:
:
: ※ 来源:·水木社区 newsmth.net·[FROM: 211.99.222.*]
--
FROM 202.108.12.*