2013-04-18 53 views
0

我有一個歷史API腳本,從內容URL加載到頁面主div,然後相應地更改URL。然而,由於我不能簡短解釋的原因,我不得不在頁面中使用內聯腳本來加載音頻播放器。當帶有播放器的頁面與歷史API一起AJAX時,內聯腳本將被刪除。jQuery過濾掉內嵌的AJAX請求,當頁面AJAX中在

我曾與jQuery的AJAX功能出現問題之前過濾掉內嵌腳本,但在歷史API腳本傳開其與此:

var dom = $(responseData); 
dom.filter('script').each(function(){//function to allow inline javascript 
    $.globalEval(this.text || this.textContent || this.innerHTML || ''); 
}); 

,是不是在這個內嵌腳本的情況下工作:

//append player with js so doesn't show when js disabled 
$('#profile_content').append('<div class="artistFeedItem" data-type="track" data-id ="<?php echo $E_ID; ?>" data-ts ="<?php echo $ts; ?>"><img src="../files/images/bigLoader.gif" style="display:block;margin-left:auto;margin-right:auto;"></div>'); //loading 

$('*[data-type="track"].artistFeedItem').each(function() { 
    //Get player for track and send off variables 
    var E_ID = "<?php echo $E_ID; ?>"; 
    var T_ID = "<?php echo $T_ID; ?>"; 
    var T_url = "<?php echo $T_url; ?>"; 
    var T_name = "<?php echo $T_name; ?>"; 
    var T_timestamp = "<?php echo $T_timestamp; ?>"; 
    var T_pic = "<?php echo $T_pic; ?>"; 
    var A_name = "<?php echo $name; ?>"; 
    $.ajax({ 
     url: 'player/body_player_template', 
     type: 'GET', 
     data: { 
      T_url: T_url, 
      T_name: T_name 
     }, 
     success: function (responseData) { 
      $('*[data-type="track"]*[data-id="' + E_ID + '"].artistFeedItem').html(responseData); 
     }, 
     error: function (xhr, textStatus, errorThrown) { 
      $('*[data-type="track"]*[data-id="' + E_ID + '"].artistFeedItem').html("Sorry, this track couldn't be loaded. Try refreshing the page."); 
     } 
    }); 
}); 

這是正在被過濾掉的時候AJAX'd在內嵌腳本。

我希望你明白我問什麼,我希望有AW唉,以防止這種情況發生。

回答

0

不知道爲什麼我沒有發現這麼長時間,但在DOM加載之前腳本正在執行。我已經改變了函數,所以在新的DOM被加載後執行腳本。