Lotus Notes Xpage - view.postScript(“window.open()”)在替换包含的Pagename后不会打开新窗口(仅在特定文档中)

时间:2013-11-19 14:11:12

标签: javascript button xpages lotus-domino lotus

我目前正在开发一个函数(在Buttonclick之后启动),以在Lotus Notes(IBM Domino Designer 9.0 Social Edition版本9.0)中打印文档。我有一个自定义控件,它为数据库创建一个新文档。保存文档后,它以只读模式打开。在那里你有一个按钮,它会将你重定向到一个新窗口,其中显示相同的内容,没有任何布局和其他东西(只有文本)。现在可以使用Ctrl + P打印页面。有两个不同的xPages。

  1. Distribution.xsp
  2. DistributionPrint.xsp
  3. 首先我正在使用

    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%正确的,但它不起作用。

    感谢大家的帮助!

4 个答案:

答案 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中调用它。现在每个页面都按预期打开。非常感谢您的帮助!