2

この行var ndx = url.indexOf( parameter );により、次のアラートのいずれも表示せずにコードが返されます。URL を示すアラートは正しいです。

function setFrameSrc() {
    var url = document.location;
    if (null == url) {
        alert('Javascript Error: Null Object - document.location');
        return;
    }
    alert('URL = ' + url);

    var parameter = '?image=';
    var ndx = url.indexOf(parameter);
    if (ndx < 0) {
        alert('Parameter not found = ' + parameter);
        return;
    }
    alert('Index of ' + parameter + ' = ' + ndx);

    var frame = document.getElementById('pframe');
    if (null == frame) {
        alert('Javascript Error: Null Object - frame');
        return;
    }
    frame.src = url.substring(ndx);
}

このコードの何が問題になっていますか?

4

3 に答える 3

5

document.locationは、そのように見えますが、文字列ではありません。あなたがしたいdocument.location.href

さらに良いことにdocument.location.search、 を含む と の後の部分のみを含む を使用することもできます?(および除外#と の後は考慮していません)。

于 2013-03-17T00:15:21.007 に答える
0

変化する:

var url = document.location;

宛先 (次のいずれか):

  1. var url = document.location + '';
    null注:比較を空白文字列 ( '') に変更する必要もあります。

  2. (url+'').indexOf

于 2013-03-17T00:19:05.480 に答える
0

私のために働いています:

function test(){
var url = location.href;
if ( null == url ) {
    alert( 'Javascript Error: Null Object - document.location' );
return;
}
alert( 'URL = ' + url );


var parameter = '?image=';
var ndx = url.toLowerCase().indexOf( parameter );
alert(ndx);
if ( ndx < 0 ) {
    alert( 'Parameter not found = ' + parameter );
    return;
}
alert( 'Index of ' + parameter + ' = ' + ndx );
}

test();

変更: document.locationlocation.hrefに変更

于 2013-03-17T00:26:34.313 に答える