2011-05-13 50 views
2

我不知道爲什麼我的網站崩潰,但由於某種原因,我能夠在執行搜索和返回html5音頻結果時每次崩潰。Safari和Chrome崩潰時運行此jQuery腳本

用戶搜索我們的數據庫併發送音樂。我無法讓它在FF中崩潰,但在Chrome和Safari中。

$('.audioplayerHTML5').live('click', function(event) { 

     var audio = ''; 
     var playbutton = ''; 
     var video = $('.videoplayer').get(0); 
     var $syncMusic = $('#syncMusic'); 
     var $last_played = $('#last_played'); 
     var $playAudioBeginning = $('#playAudioBeginning'); 
     var $playFromBeginning = $('#playFromBeginning'); 
     var $sliderVideo = $('#sliderVideo'); 


     if ($.browser.mozilla) { 
      playbutton = event.layerX < 31; 
     } else if ($.browser.safari) { 
      playbutton = event.offsetX < 61; 
     } else if ($.browser.webkit) { 
      playbutton = event.offsetX < 31; 
     } 

     if (!playbutton) return; 
     if (!this.paused) { 
      pause(this, $syncMusic.is(':checked') ? video : null); 
     } else if (this.paused) { 
      //this.play(); 
      if (!$last_played.val()) { 
       $last_played.val(this.id); 
       if ($syncMusic.is(':checked') && video) { 
        if ($playFromBeginning.is(':checked') && !video.paused) { 
         video.currentTime = document.getElementById("offsetVideo").value; 
        } else { 
         video.play(); 
        } 
       } 
       if ($playAudioBeginning.is(':checked')) { 
        this.currentTime = 0; 
       } 
       this.play(); 
      } else if ($last_played.val() !== this.id) { 
       audio = $('#' + $last_played.val()).get(0); 

       if (!audio) { 
        $last_played.val(this.id); 
        if ($syncMusic.is(':checked') && video) { 
         if ($playFromBeginning.is(':checked') && !video.paused) { 
          video.currentTime = document.getElementById("offsetVideo").value; 
         } else { 
          video.play(); 
         } 
        } 
        if ($playAudioBeginning.is(':checked')) { 
         this.currentTime = 0; 
        } 
        this.play(); 
       } else { 
        audio.pause(); 
        $last_played.val(this.id); 
        if ($syncMusic.is(':checked') && video) { 
         if ($playFromBeginning.is(':checked') && !video.paused) { 
          video.currentTime = document.getElementById("offsetVideo").value; 
         } else { 
          video.play(); 
         } 
        } 
        if ($playAudioBeginning.is(':checked')) { 
         this.currentTime = 0; 
        } 

        this.play(); 
       } 
      } else if ($last_played.val() == this.id) { 
       if ($syncMusic.is(':checked') && video) { 
        if ($playFromBeginning.is(':checked') && !video.paused) { 
         video.currentTime = document.getElementById("offsetVideo").value; 
        } else { 
         video.play(); 
        } 
       } 
       if ($playAudioBeginning.is(':checked')) { 
        this.currentTime = 0; 
       } 
       this.play(); 
      } 
     } 
    }); 

參考: jQuery .live and WebKit are crashing http://code.google.com/p/chromium/issues/detail?id=79685

+0

遷移到SO - 代碼審查是審查工作[代碼](http://codereview.stackexchange.com/faq)。 – 2011-05-13 13:50:45

回答

0

以及你檢查瀏覽器和輸出OGG或MP3瀏覽器是否支持呢? 認爲插件崩潰了瀏覽器?