2013-05-15 92 views
0

我在畫布上有一個語音氣泡(氣球)。 我允許用戶單擊此氣球以查看有關氣球的更多信息。如何讓memberID從一個頁面轉移到另一個頁面javascript

當用戶單擊時,會彈出一個新頁面,我想將mem_ID發送到新頁面,以便我可以在新頁面上執行查詢並在新頁面上發佈有關該成員的數據。

 // listen for clicks on the balloon, opens a hyperlink attached to the balloon. 
      $("#balloon").click(function popMessage(e) { 
       $("#balloon").hide(); 

       // hyperlink opens a new window upon click on the bubble 
       return !window.open('About.aspx?mem_ID' + mem_ID, "pop", "width=1000,height=900"); 

      }); 

所以這就是我計劃發送member_ID到新頁面的方式。

現在我怎麼能在新頁面上檢索這個,所以我可以用它做點什麼?

我有新的頁面上的文本框,並想打印這個ID只是爲了檢查其是否轉移: -

<script type="text/javascript"> 




    var id = <%=Request["mem_ID"]%> 

    document.getElementById('<%=TextBox1.ClientID%>').value = id; 




</script> 

它顯示在文本框中爲「未定義」 ...... ..任何幫助?

回答

1
window.open('About.aspx?mem_ID' 

應該

window.open('About.aspx?mem_ID=' 

,但你不想通過URL傳遞它這樣,因爲這將敏感數據暴露給攻擊者:要麼檢查在服務器端,當ID它是第一次收到,否則將其存儲在會話狀態,當用戶登錄

更新:

你的孩子頁面:

var id = <%=Request["mem_ID"]%> 

應該

var id = "<%=Request["mem_ID"]%>"; 

也...攻擊者可以是內部的太...對於一個內部應用程序,會話狀態是實現基本的跨頁的數據完整性的最簡單方法。

+0

內部使用。所以不會暴露給外部的攻擊者。另外,我試圖不使用C#會話變量。 但您的見解是有幫助的!謝謝。 但是,沒有我的孩子頁面出現錯誤: - 'TQR002393'未定義。哈哈這是實際的會員ID ...這意味着它被傳遞到子頁面。不知怎的,子頁面認爲這不是一個值,而是一個定義的變量? – Philo

1

試試這個::

document.getElementById('<%=TextBox1.ClientID%>').value = '<%=Request["mem_ID"]%>'; 

這將解決您的問題。

+0

它顯示爲空白文本框。至少它是不明確的(在光明的一面)哈哈。但是,當我檢查我的父母頁面。 mem_ID在傳遞給子頁面之前有一個值。任何想法? – Philo

+0

@Philo,你可以做你的彈出窗口URL包含「mem_ID」?你能分享確切的網址嗎? –

+0

按照我的編碼,它彈出一個新窗口,但窗口不顯示URL。大聲笑 我也編輯了我的問題了一下,我在子頁面中定義了一個var,設置其值爲請求並將其重新發布到文本框中。現在它顯示爲'undefined' – Philo

相關問題