2012-09-07 35 views
0

我正在尋找一種方法來訪問已被加載到一個div,通過jQuery或JavaScript的頁面的查詢字符串。訪問一個頁面加載到一個div的查詢字符串

原因是我需要根據參數是否加載到頁面中來修改頁面調用函數的方式。

我已經試過這一點,已經加載到

var fileIDPresent = false; 
var url = this.window.location.href; 
alert(url); 
if (url.indexOf('?' + 'FileID' + '=') != -1) 
    fileIDPresent = true; 
else if (url.indexOf('&' + 'FileID' + '=') != -1) 
    fileIDPresent = true; 

該頁面通過下面的代碼加載到DIV在div內頁:

$('#loadedContentHolder').load('/ViewDetails.aspx?FileID=' + File, function() { 
       // load finished... 
       $('#loadedContentHolder').slideDown('slow'); 
      }); 
+1

請說明你的問題是什麼! –

+0

頁面「如何加載到DIV」?如果它是一個iframe,那麼你可以檢查iframe的'src'。如果內容已作爲DIV的子項添加,則源信息將丟失。 – Orbling

+0

看看這是否有幫助:http://stackoverflow.com/questions/1403888/get-url-parameter-with-jquery ...它似乎是你實際上尋找一種方法來解析查詢參數的url字符串。但是,從OP中辨別出來有點困難。 – Chase

回答

1

的URL時丟失您將代碼注入DIV。您需要以某種方式將URL保存到div節點。

你可以這樣做:

var url = '/ViewDetails.aspx?FileID=' + File; 
$('#loadedContentHolder').load(url, function() { 
    // load finished... 
    $('#loadedContentHolder').data('url', url).slideDown('slow'); 
}); 

下一次,你想知道使用的網址,你可以獲取這樣的網址:

var url = $('#loadedContentHolder').data('url'); 

這將返回已使用的URL和你可以使用該URL來提取參數:

var params = getUrlParams(url); 

function getUrlParams(url) { 
    var vars = [], hash 
     ,hashes = url.indexOf('?') + 1).split('&'); 

    for (var i = 0; i < hashes.length; i++) { 
    hash = hashes[i].split('='); 
    if (hash.length === 2) { 
     vars.push(hash[0]); 
     vars[hash[0]] = unescape(hash[1]); 
    } 
    } 
    return vars; 
} 
+0

問題是調用window.location.href指向包含父div的頁面,該頁面中沒有查詢字符串參數... –

+0

因此,您使用AJAX請求將HTML注入到div中,並且您希望知道查詢字符串是Ajax調用的內容嗎?向我們展示一些如何將HTML注入div的代碼。我認爲這將幫助我們理解您的問題 – koenpeters

+0

在原始文章中發佈了代碼片段,以顯示它如何加載到div中。 –

相關問題