1

这里是代码示例:

do
{
    line=gets(smil);
    if (line===-1){console.log("Abort");callback(-1);}
    console.log("line= "+line);
}while(line.search("<video")===-1);

第一个输出顺利,但突然间,我得到了

line= -1
TypeError: Object -1 has no method 'search'

get 是一个自定义函数,如果出错,它会返回一个字符串或 -1。

我尝试使用 == 而不是 ===,但它只是做同样的事情。

我试图用未定义替换gets的返回-1,但我只是得到

line= undefined
TypeError: Cannot call method 'search' of undefined

反而。

为什么 if 不执行?

编辑:尝试过

var pline
do
{
    pline=gets(smil);
    if (pline===-1){console.log("Abort");callback(-1);}
    console.log("line= "+pline);
}while(pline.search("<video")===-1);

为避免覆盖另一个变量,得到相同的结果

4

2 回答 2

1

这是一个两个问题。

1st - 你linedo. 这就是为什么你得到Uncaught TypeError: Object -1 has no method 'search'

将该行更改为parsed_line = gets(smil); //also never forget semicolons

2nd -search不是字符串的函数,你想要这个indexOf()函数。

所以while(line.search())改为while(line.indexOf()).

我为你做了一个小提琴,在这里演示

于 2013-07-31T11:40:19.463 回答
0

尝试添加休息。

do
{
    line=gets(smil);
    if (line===-1){
        console.log("Abort");
        callback(-1);
        break;
    }
    console.log("line= "+line);
}while(line.search("<video")===-1);
于 2013-07-31T11:15:44.027 回答