2016-03-31 213 views
4

我有一個EventDetails.aspx頁面,其中包含可由我的用戶使用我的Timetable.aspx頁面中的Window.Open()打開的事件的詳細信息。在EventDetails.aspx頁面我有一個按鈕,可以讓我再使用如下代碼關閉窗口:如何判斷我的頁面是否使用Window.Open()打開

protected void CloseWindow_Click(object sender, EventArgs eventArgs) 
{ 
    Response.Write("<script language='javascript'>window.open('','_self');window.close();</script>"); 
} 

當我打開我的窗口,從Timetable.aspx頁面關閉窗口Window.Open()按鈕工作正常,但是如果我獨立導航到EventDetails.aspx頁面,我無法使用關閉窗口按鈕 - 沒有任何反應!

有沒有一種方法可以確定用戶是否使用Window.Open()進行了導航,以便可以更改我的按鈕的可見性,或者更好,還有另一種方法可以關閉不依賴於我的選項卡使用Window.Open()?

+0

當您使用'window.open'打開時,您可以在查詢字符串中傳遞一個參數。如果您在加載EventDetails頁面時發現它,就知道它已經以這種方式打開。 – ConnorsFan

+3

檢查'window.opener'的值,它將包含對打開彈出窗口的窗口的引用 – dman2306

+1

@ConnorsFan我可能會嘗試,但我想象我會有類似的問題,即。如果用戶在使用Window.Open()打開頁面之後對url進行書籤標記,然後再嘗試返回包含查詢字符串的url。 – Claire

回答

2

你可以通過數據來打開的窗口,這樣在打開的窗口,你可以檢查在JS的數據,你可以根據傳遞

// Store the return of the `open` command in a variable 
var newWindow = window.open('example.com','_self'); 

// Access it using its variable 
newWindow.my_special_setting = "Hello World"; 

在打開的窗口中,您可以檢查數據的數據隱藏或顯示按鈕像下面

window.my_special_setting 

添加一個jQuery小提琴碼,以確認其將與 '_self'

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<p>Click the button to open a new browser window.</p> 
 

 
<button onclick="myFunction()">Try it</button> 
 

 
<script> 
 

 
window.open("http://www.w3schools.com","_self"); 
 

 
</script> 
 

 
</body> 
 
</html>
工作

+0

@WashingtonGuedes我們可以將它作爲第二個參數添加到windows.open更新代碼 –

+0

@WashingtonGuedes讓我確認它 –

+1

@WashingtonGuedes我認爲它應該工作在與_self一起使用的答案中添加了小提琴 –

相關問題