2013-07-02 52 views
0

所以,我正在使用Javascript中的Web Audio API。我目前看起来像这样使脚本在不同浏览器上运行

try { 
this.processor=this.context.createScriptProcessor(this.blockLength,2,2); 
} 
catch(f) 
{ 
    this.processor=this.context.createJavaScriptNode(this.blockLength,2,2) 
} 

基本上,如果第一个失败,请尝试另一个。我不太喜欢这种结构。我认为这不是try/catch结构的样子。但它能完成这项工作。

有人有更好的方式做到这一点吗?所以,如果两个语句都失败了,我可以给alert()命令。

谢谢。

PS。我是新来的JS

+0

为了让您的HTML5开发更容易,您可以尝试[Modernizr的(http://modernizr.com)和检出[音频检测代码](http://modernizr.com/docs/#features-html5) – OnesimusUnbound

+0

谢谢,看起来不错。 – whatever123

回答

3

你可以调用它之前测试的方法存在:

if(this.context.createScriptProcessor){ 
    this.processor=this.context.createScriptProcessor(this.blockLength,2,2); 
} 
else if(this.context.createJavaScriptNode){ 
    this.processor=this.context.createJavaScriptNode(this.blockLength,2,2); 
} 
else{ 
    // do something else 
} 
0

这里没有太多的JavaScript大师,但生病让它一炮而红。也许你可以检查你的try/catch语句的工作原理是利用一个布尔值:

var isProcessed = false; 
try { 
    isProcessed = true; 
    this.processor=this.context.createScriptProcessor(this.blockLength,2,2); 
}catch(f){ 
    isProcessed = true; 
    this.processor=this.context.createJavaScriptNode(this.blockLength,2,2) 
} 

if(isProcessed == false){ 
    alert("Not processed!"); 
} 

这是否对你的工作?

相关问题