WebObjects/Web 应用程序/开发/示例/在新窗口中打开链接
外观
使用 JavaScript 在新窗口中打开链接。 实际上有一种非常简单的方法可以做到这一点。 只需使用 WOHyperlink,并使用 onclick 绑定。
Hyperlink3: WOHyperlink { action = myCustomAction; onclick = "return openInNewWindow(this)"; target = "_new"; }
<script language="javascript"> function openInNewWindow(senderLink) { url = senderLink.href; newWindow = window.open(url,"NewWindow","width=650,height=600,resizable=yes,"+ "scrollbars=yes,location=no,toolbar=no"); newWindow.focus(); return false; } </script>
有趣的是,超链接将自身发送到 openInNewWindow()? 函数,该函数然后从链接的 href 属性中获取 URL,并在新窗口中打开它。 您可以使用普通的旧操作方法并将其绑定到此超链接。 此外,它将在不支持 javascript 的浏览器中工作,因为该函数不会返回 false,并且链接将像目标为“_new”的普通超链接一样工作。 当 javascript 返回 false 时,将不会遵循链接。
要执行更复杂的操作,假设您将图像尺寸存储在数据库中,并且希望新打开的窗口恰好具有正确的尺寸。 您需要以编程方式为 WOHyperlink 创建“onclick”绑定字符串,该字符串将尺寸传递给 openInNewWindow()? javascript 函数。
Hyperlink3: WOHyperlink { action = myCustomAction; onclick = myOnclickString; target = "_new"; }
并在您的组件类中添加以下方法
public String myOnclickString() { EOEnterpriseObject imageBeingOpened; // assume this exists Integer width = imageBeingOpened.width(); Integer height = imageBeingOpened.height(); return "return openInNewWindow(this, " + width + ", " + height + ");"; }
最后,更改您的 javascript 方法以接受宽度和高度参数
<script language="javascript"> function openInNewWindow(senderLink, width, height) { url = senderLink.href; newWindow = window.open(url,"NewWindow","width="+width+",height="+height+",resizable=yes,"+ "scrollbars=yes,location=no,toolbar=no"); newWindow.focus(); return false; } </script>