我目前正在开发一个函数(在Buttonclick之后启动),以在Lotus Notes(IBM Domino Designer 9.0 Social Edition版本9.0)中打印文档。我有一个自定义控件,它为数据库创建一个新文档。保存文档后,它以只读模式打开。在那里你有一个按钮,它会将你重定向到一个新窗口,其中显示相同的内容,没有任何布局和其他东西(只有文本)。现在可以使用Ctrl + P打印页面。有两个不同的xPages。
首先我正在使用
path = facesContext.getExternalContext().getRequest().getRequestURL();
获取当前页面网址。之后,可以选择将路径的当前页面(Distribution.xsp)替换为DistributionPrint.xsp。
var replacePage = @RightBack(path, "/");
path = @ReplaceSubstring(path, replacePage, "DistributionPrint.xsp");
当我测试它时,替换成功。之后,我正在为新路径打开特定文档的新URL。最后,所有内容都放在view.postScript方法中:
var docid = docApplication.getDocument().getUniversalID();
view.postScript("window.open('"+path.toString() + "?documentId=" + docid + "&action=openDocument"+"')")
现在我的问题开始了。在99%的我的尝试中,新窗口打开就像我说要编程的那样。但是有一些文档,我点击按钮,他没有打开一个新窗口,并试图打开旧的Distribution.xsp网址。我已经使用debugtoolbar测试了他想要在这些文档中打开的路径。单击按钮的结果将返回应该打开的完全正确的URL。我也可以复制该网址并将其手动粘贴到我的浏览器中=>有用!但是,如果我想通过buttonclick和viewPostScript打开该URL,则不会发生任何事情。
有没有人像我一样遇到同样的问题?也许你们其中一个人可以帮我解决这个问题。真的很烦人,一切都在99%的文档中得到了解决,但是在某些文档中,虽然给定的URL是100%正确的,但它不起作用。
感谢大家的帮助!
答案 0 :(得分:2)
尝试将代码添加到页面上的javascript函数中,并从view.postscript代码中调用该函数 或者正如Panu建议将它添加到onCompete代码
答案 1 :(得分:0)
如果网址正确,那么view.postScript
就会出现问题。试试<xp:this.onComplete>
。
其他尝试:
var w = window.open(..
。普通window.open
可能会更改网址
当前窗口。alert()
; 答案 2 :(得分:0)
你可能正在咆哮完全错误的树。您是否尝试过创建第二个CSS样式表而不是创建第二个打印页面?
使用@Media Print,您可以告诉浏览器使用该样式表进行打印。在那里,您将所有导航元素设置为display:none,它们将不会打印。
无需为打印内容维护单独的XPage。
答案 3 :(得分:0)
谢谢大家的建议。 Fredrik Norling的解决方案为我工作。我将代码放入一个函数中并在buttonclick中调用它。现在每个页面都按预期打开。非常感谢您的帮助!