使脚本跨不同浏览器运行

时间:2013-07-02 12:02:54

标签: javascript browser cross-browser web-audio

所以,我正在使用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的新手

2 个答案:

答案 0 :(得分: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
}

答案 1 :(得分: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!");
}

这对你有用吗?