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 に答える