0

page1.htmlからリダイレクトされた場合、またはpage2.htmlからリダイレクトpage3.html?redesigndata=valueされた場合に表示される、次のようなクエリ文字列があります。これは、クエリ文字列が何であるかを調べ、 page3.htmlでいくつかの関数を実行するために使用しているコードです。page3.html?new=yesno

var locurl = window.location.search;
if (locurl.substring(0, 13) === '?redesigndata') {
  alert("redesign!");
} else if (locurl.substring(0, 4) === '?new') {
  visit = locurl.substring(5);
  alert("somthing!");
  if (visit === 'yes') {
     alert("first!");
  } else if (visit === 'no') {
    alert("again!");
  }
}

しかし、このスクリプトを試してもアラートは表示されず、何が問題なのかわかりません。

4

3 に答える 3

1

投稿したコードに問題はありません。アラートが発生しない場合は、条件が満たされていないことが原因です。コードにリストしたものの1つと一致するクエリ文字列がURLに追加されると、アラートが発生します。

また、(一見)グローバル変数を作成していることに注意してください。

于 2012-07-12T16:19:45.447 に答える
1

この機能を使ってみてください

function getQueryString() {
  var result = {}, queryString = location.search.substring(1),
      re = /([^&=]+)=([^&]*)/g, m;

  while (m = re.exec(queryString)) {
    result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
  }

  return result;
}

// ...
var myParam = getQueryString()["myParam"];

このように確認してください

if(getQueryString()["redesigndata"] != "")
于 2012-07-12T16:22:10.617 に答える
1

スクリプトは私のボックスで機能します。このスクリプトをスクリプトタグ内に配置してください

于 2012-07-12T16:23:29.930 に答える