访问加载到div中的页面的查询字符串

时间:2012-09-07 14:09:00

标签: javascript jquery html

我正在寻找一种方法来访问已经加载到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中:

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

1 个答案:

答案 0 :(得分:1)

将代码注入DIV时,URL会丢失。您需要以某种方式将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;
}