0

我正在寻找一种通过 jquery 或 javascript 访问已加载到 div 中的页面的查询字符串的方法。

原因是我需要根据参数是否已加载到页面中来修改页面调用函数的方式。

我已经在加载到 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');
            });
4

1 回答 1

1

将代码注入 DIV 时,URL 会丢失。您需要以某种方式将 URL 保存到 div 节点。

你可以这样做:

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

下次您想知道使用了什么 URL 时,您可以像这样获取 url:

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;
}
于 2012-09-07T14:12:46.107 回答