2013-07-02 58 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!"); 
} 

這是否對你的工作?

相關問題