2016-02-09 54 views
3

我在頁面上使用JQuery UI對話框,並在其中顯示另一個頁面(page2.htm)的內容。我的代碼如下:獲取JQuery對話框的子窗口位置

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <title>Test</title> 

    <script src="Scripts/jquery-1.6.4.js"></script> 
    <script src="Scripts/jquery-ui-1.11.4.js"></script> 
    <script> 
     $(document).ready(function() { 
      $(".hlk1").click(function() { 
       var linkId = $(this).attr("linkID"); 

       // initialize dialog 
       var dlg = $("#dialog").dialog({ 
        autoOpen: false, 
        modal: true, 
        draggable: false, 
        resizable: false, 
        position: { my: "center", at: "center", of: window }, 
        height: 380, 
        width: 530, 
        dialogClass: 'ui-dialog-osx', 
        buttons: { 
         "Done": function() { 
         $(this).dialog("close"); 
        } 
       } 
      }); 

      // load content and open dialog 
      dlg.load('page2.html?id=' + linkId).dialog('open'); 
     }); 
}); 
</script> 

</head> 

<body> 

<a href="#" class="hlk1" linkid="305">Click here</a> 
<br/> 
<a href="#" class="hlk1" linkid="890">Click here</a> 
<br/> 
<div id="dialog"></div> 
</body> 
</html> 

在我page2.html我想從URL抓取的查詢字符串到該網頁上使用,但是當我試圖讓位置,我得到父頁面的URL使用

this.location 

我的問題是我如何獲得在div中顯示的page2.html的URL?

這裏是我的page2.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 

    <title>Page 2</title> 
    <script src="Scripts/jquery-1.6.4.js"></script> 
    <script> 

     $(document).ready(function() { 
      alert(this.location); 

     }); 

    </script> 
</head> 

<body onload="this.focus()"> 
    <div>  
     <h1>Page 2</h1> 
     <div style="margin-top: 10px;"> 

      <input type="text" id="PostId"/> 
     </div> 
    </div> 
</body> 
</html> 
+0

當頁面2的內容加載到對話框中後,您是否看到警告? – Yass

+0

是的,我看到了警報,它是父頁面的URL – ElenaDBA

回答

0

看那documentation爲jQuery的​​功能。您將看到​​使用ajax請求從您的page2.html中獲取HTML,然後將其放入您的#dialog元素中。

ajax調用不會影響您的瀏覽器可用的location,它基本上只是將內容添加到當前頁面。您將無法通過您撥打​​的電話訪問您在URL中傳遞的任何查詢參數。

如果您正試圖把你的對話框中您linkId某處時,對話框的內容將隨時一旦調用​​完成,並且你可以通過jQuery選擇訪問它。

例如,如果你想與你的linkId填充<input type="text" id="PostId">元素,你可以只是做$('#PostId').val(linkId);一旦你到​​調用完成。

你可以傳遞一個回調函數​​當Ajax請求已經完成,並且您的內容已經被加載到頁面將被調用,所以你可以做任何你想在那裏linkId,像這樣:

dlg.load('page2.html', function() { 
    $('#PostId').val(linkId); 
}).dialog('open'); 
+0

謝謝,那爲我工作 – ElenaDBA