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 回答