我正在处理应用程序,当我想在新标签页或窗口上打开链接时,我遇到了困难。 我使用的是Lotus Notes Designer 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>
答案 0 :(得分:4)
根据您的updated code in comment,您只需添加target="_blank"
即可使用onClick
属性代替使用value
事件,该属性将指向要打开的网址。所以你的代码是这样的:
<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>
答案 1 :(得分: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>
这将在附加标签中打开谷歌。
<强>更新强>
如果您想使用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客户端事件。
答案 2 :(得分: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>
如果此代码无法按预期工作,请检查两件事。
检查是否正确设置了url变量。
确保您使用的是最新版本。 window.open()在8.5.1FP2之前没有按预期工作。