0

StackOverflow から次のコードを取得しました。URL 内の変数を解析することになっていますが、for ループで sURLVariables の値をデバッグすると、その値は常に空になります。理由はありますか?

var getUrlParameter = function getUrlParameter(sParam) {
  var sPageURL = decodeURIComponent(window.location.search.substring(1)), 
      sURLVariables = sPageURL.split('&'), sParameterName, i;

  for (i = 0; i < sURLVariables.length; i++) {
    sParameterName = sURLVariables[i].split('=');

    if (sParameterName[0] === sParam) {
      return sParameterName[1] === undefined ? true : sParameterName[1];
    }
  }
};
4

2 に答える 2

1

使用しているコードは URL の「検索」部分 (クエリ文字列) を探しますが、使用しているページにはクエリ文字列がありません。ページの URL は のようになりますhttp://www.atomz.host-ed.me/#?l=en。hash( #) の後のすべてが URLフラグメントの一部です。

の代わりにwindow.location.search.substring(1)、 を使用しますwindow.location.hash.substring(2)

(または、URL フラグメントの先頭にある疑問符を取り除き、 を使用しますwindow.location.hash.substring(1)。)

于 2016-08-20T16:50:55.657 に答える
0

window.location.hrefまたはdocument.URLを使用して、現在のページの完全な URL を取得してみてください。それらについての詳細:

  1. https://developer.mozilla.org/en-US/docs/Web/API/Document/location
  2. https://developer.mozilla.org/en-US/docs/Web/API/Document/URL
于 2016-08-20T15:14:37.120 に答える