2

我正在处理应用程序,当我想在新选项卡或窗口上打开链接时遇到了问题。我正在使用 Lotus Notes Designer Release 8.5.2FP1。我附上了我的一段代码。

<xp:eventHandler event="onclick" submit="true"
        refreshMode="complete">
        <xp:this.action><![CDATA[#{javascript:try{
var doc = database.getProfileDocument("frmConfiguration","");
var url = doc.getItemValueString("HeaderLink1URL");
view.postScript("var tempwindow =window.open('"  +url+"','_blank');tempwindow.focus();");
}catch(e){
}}]]></xp:this.action>
4

3 回答 3

4

根据您在评论中更新的代码,您可以简单地添加target="_blank"而不是使用onClick事件,而是使用value指向要打开的 URL 的属性。所以你的代码会是这样的:

<xp:link escape="false" id="link1" target="_blank">
    <xp:this.text>some code</xp:this.text>
    <xp:this.value><![CDATA[#{javascript:var doc = database.getProfileDocument("frmConfiguration","");
var href = doc.getItemValueString("HeaderLink1URL");
return href;}]]></xp:this.value>
</xp:link>
于 2013-04-02T14:41:20.490 回答
1

最简单的方法是:

<xp:text escape="false" id="newTab"><xp:this.value><![CDATA[#{javascript:return "<a href=\"http://www.google.com/\" target=\"_blank\">Google</a>";}]]></xp:this.value></xp:text>

这将在附加选项卡中打开 google。

更新:

如果你想使用 xp:link 你可以尝试:

<xp:link escape="false" id="newTab" text="test">
        <xp:this.onclick><![CDATA[var ret = window.open("http://www.google.com",'_blank');
]]></xp:this.onclick>
    </xp:link>

如果您想在单独的窗口或选项卡中打开链接,我建议不要使用 aktion,请使用选项选项卡中的 onclick 客户端事件。

于 2013-04-02T13:30:05.850 回答
0

这是一些在客户端和服务器端打开 URL 的示例代码。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

    <xp:button value="Client Side Open Button." id="ClientSideButton">
        <xp:eventHandler event="onclick" submit="false">
            <xp:this.script><![CDATA[var href = "http://www.ibm.com";
var tempwindow = window.open(href,'_blank');
tempwindow.focus();
]]></xp:this.script>
        </xp:eventHandler>
    </xp:button>
    <xp:br></xp:br>
    <xp:br></xp:br>
    <xp:button id="serverSideButton" value="Server Side Open Button ">
        <xp:eventHandler event="onclick" submit="true"
            refreshMode="complete">
            <xp:this.action><![CDATA[#{javascript:var href = "http://www.ibm.com";
view.postScript("var tempwindow = window.open('" + href + "','_blank'); tempwindow.focus();");

}]]></xp:this.action>
        </xp:eventHandler>
    </xp:button>
</xp:view>

如果此代码无法按预期工作,则需要检查两件事。

  1. 检查 url 变量是否设置正确。

  2. 确保您使用的是最新版本。window.open() 直到 8.5.1FP2 才按预期工作。

于 2013-04-02T14:03:01.947 回答