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>