在XPage中的iFrame,加载WebContent

时间:2014-05-08 10:01:06

标签: iframe xpages

我的myFolder/myDB.nsf包含WebContent/mySite/index.html,一个没有任何XPage代码的html文件。数据库配置为仅在有效Notes登录后显示Web内容。

现在我想在Notes客户端中嵌入这个index.html,使我们的用户无需登录即可查看。

我将如何实现这一目标?

我想通过XPages/index.xsp来做这件事,xsp包含以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<iframe src="mySite/index.html" style="width:100%;height:100%"></iframe>
</xp:view>

在网络浏览器中打开http://myserver/myFolder/myDB.nsf/index.xsp时效果很好。

在Notes客户端中打开它时,会抛出错误404.

使用时

<iframe src="http://myServer/myFolder/myDB.nsf/mySite/index.html" style="width:100%;height:100%"></iframe>

没有抛出任何错误,但我仍然必须登录,即使我已经通过身份验证注释。

此外,在打开http:///myFolder/myDB.nsf/index.xsp时,我必须登录两次。

2 个答案:

答案 0 :(得分:1)

在Notes客户端中,如果直接引用XPiNC URL,则需要在前面添加xsp /。

所以在你的情况下,URL将是

Whatever.nsf / XSP / index.html中

您需要以编程方式将Notes客户端检测为您的用户代理,并相应地添加xsp。

答案 1 :(得分:1)

简答:不要。

答案很长:XPiNC的行为与常规浏览器不同,IFrame是其中一个领域。您可以将标准HTML页面的正文内容复制到XPage中,它只会显示。对于CSS / JS,你将它们放入资源中。这样它就能正常显示。

对于base path - 您需要将其添加到标题中。在被视为资源的XPage中,您可以这样做:

   <xp:this.resources>
    <xp:headTag tagName="base">
        <xp:this.attributes>
            <xp:parameter name="href" value="/xx" />
            <xp:parameter name="target" value="_top" />
        </xp:this.attributes>
    </xp:headTag>
</xp:this.resources>