主题:  弹出窗口高级问题!!

有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#12002/6/20 10:16:34
由于我的页面上用了层的滚动(手动),但我要做一个打印页面的功能,滚动的层里的内容是主要的,如果就简单的使用PRINT打印本页的话,只能打印当前页面上显示的内容。

我后来用了showModalDialog 传递层的innerHTML给网页对话框中的页面,效果还是不错,但是却只能传递4096 characters, longer strings are trusted。。 好气人啊,所以我想问还有别的办法吗?

我做了一个打印页的模版,放了表格,打印按钮,插入了CSS文件,只要能动态把层里的内容输出到这个网面相应的地方就好了!



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#22002/6/20 11:10:56
你是用的dialogArguments传递innerHTML吗?没听说过有4096 的限制啊。
你是怎么如何测试出来的?
试过直接open打印窗口然后用opener.div.innerHTML吗?



有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#32002/6/20 13:53:20
我是用showModalDialog 传递当前页面中的一个层里面的内容
var xxxx=document.sDiv.innerHTML
showModalDialog ("xxx.htm","xxxx"," ")
然后在xxx.htm中用了dialogArguments接收这个值,再document.write
竟然超过了4096后面的就被剪掉了,
我去了MSDN,上面是这么说的
If the vArguments parameter is defined as a string, the maximum string length that can be passed to the modal dialog box is 4096 characters; longer strings are truncated.



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#42002/6/20 14:21:02
哦,那你试过直接open打印窗口然后用opener.div.innerHTML吗?



有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#52002/6/20 15:36:09
ridincal在上个帖子中说
引用:
哦,那你试过直接open打印窗口然后用opener.div.innerHTML吗?

直接OPEN打印窗口??
然后再opener.div.innerHTML??
不懂啊,怎么用的!



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#62002/6/20 15:40:44
你用showModelDialog打开的是什么页面?打印页的模版?



有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#72002/6/20 15:45:09
页面A中我是这样做的:



页面B中是这样的:
undefined



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#82002/6/20 15:55:12
页面A:



页面B中:



试试看。

编辑历史:[这消息被ridincal编辑过(编辑时间2002-06-20 15:55:28)]


有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#92002/6/20 16:49:59
页面A中 content变量根本没有用到啊
页面B中 window.dialogArguments怎么会接收到内容呢?
我试过了,打开的窗口显示一个undefined



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#102002/6/20 16:55:13
ridincal在上个帖子中说
引用:
页面A:



页面B中:



试试看。



有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#112002/6/20 16:59:34
还是一样啊!
不是可以用writeln往一个window.open的新窗口里写入内容吗?
用到这个应该可以吧!



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#122002/6/20 17:03:38
B中无var content = window.dialogArguments;这句,我刚才试了试:
A页面:

A





jkasdjfldjaslf;jdalkfjlk;djflkjflkasjf

B页面:

没问题,但长度我没有试。



有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#132002/6/20 17:10:45
你的这个和上面那个不是一样吗?
content = parent.mainFrame.document.t.content.innerHTML
window.open sUrl,"","width=485;height=480"

我的页面是一个框架,TopFrame和mainFrame ,在mianFrame里面有一个Iframe 名字是t ,t的页面中有一个名为content的DIV
对象名我也对了,值也能附到content里去,可是显示的结果却是个undefined



有饭

职务:普通成员
等级:2
金币:10.0
发贴:669
注册:2002/3/25 12:50:19
#142002/6/20 17:12:44
对不起,可能是因为我A页面用的是VBS,而B页面用的JS的原因!
但是我用JS不会写这几句!
sUrl=parent.mainFrame.locations
Url=left(sUrl,InStrRev(sUrl,"/"))
sUrl=sUrl+"print.htm"
指教一下!



=ridincal=

职务:管理员
等级:7
金币:20.0
发贴:5886
注册:2004/1/13 11:47:04
#152002/6/20 19:33:11
var sUrl=parent.mainFrame.locations;
sUrl=sUrl.substring(0,sUrl.indexOf("/");
sUrl+="print.htm";