0

URL をパラメーターとして受け取る小さな関数を書きたいのですが、その URL をロードする前に、それが既にそのページにあるかどうかをチェックします。その場合、戻りfalse、何も起こりません。それ以外の場合は、指定された URL をロードします。私はこのようなことを試しました:

function load(url) {
    if(window.location.href === url) {
        return false;
    } else {
        window.location.href = url;
    }
}

残念ながら、現在のページがhttp://www.example.org/index.htmlの場合、 を呼び出しても何も実行さload('http://www.example.org/index.html')れませんが、 を呼び出すとload('index.html')、ページがリロードされます。絶対アドレスだけでなく相対アドレスもキャッチする機能を追加するにはどうすればよいですか?

編集: URL のベースを知らなくても、これを任意のページで使用できるように、これを動的にしたいと考えています。

4

2 に答える 2

0

これはあなたのために働くかもしれません:

function load(url) {
    if(window.location.href === url || window.location.href === 'http://www.example.org/' + url) {
        return false;
    } else {
        window.location.href = url;
    }
}

loadしかし、関数がどのように使用されるかについて詳しく知らずに知ることは困難です。

于 2013-05-16T17:38:08.890 に答える
0

わかった

String.prototype.endsWith = function(suffix) {
    return this.indexOf(suffix, this.length - suffix.length) !== -1;
};

次に、チェックは簡単になります。

function load(url) {
    if(window.location.href.endsWith(url)) {
        return false;
    } else {
        window.location.href = url;
    }
}
于 2014-07-01T16:43:49.203 に答える