2012-09-07 18 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中。 –

相关问题