3

resultという url 変数が存在するかどうかを確認するスクリプトを作成しようとしています。存在する場合は、値が成功かどうかを確認します。

次のことを試しましたが、結果が存在しない場合、スクリプトが未定義としてエラーになります

function getUrlVars() {
    var vars = {};
    var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) {
        vars[key] = value;
    });
    return vars;
}
var first = getUrlVars()["result"];
alert(first);
4

2 に答える 2

3

そして、 undefined かどうかを単純にチェックしてみませんか?

if (first !== undefined)
     alert(first);
else alert('ooops');

または、おそらく「デフォルト値」のようなものを定義することもできます:

var first = getUrlVars().result || '';
于 2012-07-17T08:42:24.260 に答える
0

"result" がクエリ文字列にない場合、それは vars オブジェクトに入れられません。

したがって、保持したい場合:

'first = getUrlVars()["result"]'

「結果」がまったくない場合は、未定義として表示されることを受け入れる必要があります(これは、何も保持していない配列インデックスを要求したときに得られる結果です。または設定されていないオブジェクト プロパティ)。

あなたがそれを持っていることに固執している場合は、試してください:

var first = getUrlVars()["result"] || "not-success";

|| を使用すると、最初の値として必要なものを何でも返すことができます。

vars.result === undefined;


first = result || false;
first = result || {};
first = result || fire_this_function("no-result");
// first now equals the return value of the function if result === undefined

これらはすべて、次のように言っているのと同じです:

if (result === undefined) { first = "........"; }
于 2012-07-17T08:50:18.907 に答える