javascript windows phone如果声明破坏程序

时间:2012-10-09 13:51:10

标签: javascript windows-phone-7 nokia

这一行:

if(Debug===true){console.log('No jquery detected on host site, loading own jquery');}

在诺基亚Windows手机中破坏我的脚本,如果我将该变量设置为false,则一切正常,但如果设置为true,脚本将停止。我也尝试了一个警报,而不是那个console.log但是同样的停止行为。

有人知道或怀疑这种行为的原因吗?

修改

对于所有的回复,事实是,如果我拿出整个console.log行并在if里例如我把它留空或者我放了一个简单的var声明同样的停止行为仍然存在,这让我怀疑是与if语句相比与控制台对象更相关

第二次编辑

正如你们所说的那样,console.log打破了它,我有一个隐藏的,发现它现在有效,所以没有关系来自控制台对象的所有错误,tkyou all

5 个答案:

答案 0 :(得分:4)

我不会依赖Windows手机上现有的console对象。你应该对你的陈述进行防弹,以确保它不会爆炸:

if (Debug===true && typeof console !== 'undefined') {
    console.log('No jquery detected on host site, loading own jquery');
}

答案 1 :(得分:2)

WP7不支持

Console.LogAlert。你确定这是诺基亚特有的,而不仅仅是WP7吗?我没有尝试过,但这library可能有用。

答案 2 :(得分:1)

嗯,这很奇怪。我不完全确定你为什么使用if(Debug === true)而不是if(Debug)或者甚至是(debug == true)。 ===对于布尔值是不必要的。您可能想尝试一下,看看它是否可以解决您的问题。

答案 3 :(得分:1)

不要依赖console.log现有的。如果您打算使用它,请检查它是否已首先定义。

答案 4 :(得分:1)

我认为旧版本的Internet Explorer默认情况下不会定义console。您可以通过执行以下操作来检查console是否已定义:

if(Debug===true){
    if(!!console){
        console.log('No jquery detected on host site, loading own jquery');
    } else {
        window.console = { log: function(m){ alert(m); } } //Define console to prevent future errors.
        alert('No jquery detected on host site, loading own jquery');
    }
}