2013-08-20 64 views
1

我試圖做一個插件一個收音機,其中的JavaScript包括另一個JavaScript。我嘗試了多種解決方案,但他們都沒有爲我工作。 我不知道JavaScript,所以基本上我試圖從經驗中學習。包括另一個JavaScript的JavaScript

這是我的代碼:

function loading_live() { 
    document.write('<'+'script src="http://djspinnercee.servemp3.com:32768/php-cgi/scaststatus_x.php?index=5&host='+<?php echo (RADIO_ADDRESS); ?>+'&port='<?php echo (RADIO_PORT); ?>'" type="text/javascript"><' + '/script>'); 

} 

var auto_refresh = setInterval(function(){ 
    $('#LiveNow').fadeOut('slow').loading_live().fadeIn("slow"); 
}, 10000); 

JavaScript的重新加載正確的格..但是,當涉及到裝載其他外部,它的Javascript和崩潰不呈東西。

+1

只聲明一個函數並不會使它成爲一個jQuery插件,您需要將它添加到jQuery原型。看看[教程](http://learn.jquery.com/plugins/basic-plugin-creation/)。 – jbabey

回答

0

是否getScript適合您?

var auto_refresh = setInterval(function(){ 
    $('#LiveNow').fadeOut('slow'); 
    $.getScript('http://djspinnercee.servemp3.com:32768/php-cgi/scaststatus_x.php?index=5&host=<?php echo (RADIO_ADDRESS); ?>&port=<?php echo (RADIO_PORT); ?>', function() { 
     $('#LiveNow').fadeIn("slow"); 
    }); 
}, 10000); 
+0

嗯..我現在試了..但它沒有工作... [鏈接](http://probe.cabalagames.net84.net/plugins/live_now.php) –

+0

我發現在解決方案中的錯字和從此編輯它。 *編輯*:你的頁面上甚至沒有jQuery。你是怎麼做'$('#LiveNow')'? – Brian

+0

哦..對..對不起,我以爲只是該鏈接會做。這是正確的[鏈接](http://probe.cabalagames.net84.net/)這是整個頁面。 –

0

這裏有幾個問題。

首先是你不叫你的功能。鏈接fade後不起作用。

您需要明確調用它。 但它無論如何不會工作。

這是第二個問題。

不能document.write當頁面加載。

它只適用於JavaScript瀏覽器評估的Javascript。 這就是爲什麼類似的做法立即撥打功能,如:

function() { 
    document.write('this is inserted in the page'); 
}(); // <- note the parenthesis 

如果你想在頁面加載後的JS節點添加到DOM,你需要創建的元素,然後將其附加到DOM。

+0

嗯..我認爲我正在調用的外部腳本也在使用document.write ...那麼,如何在將它附加到DOM之前創建元素,從外部收集信息? –

+0

如果外部文檔也使用'document.write',那麼你就無法完成這個褪色技巧...... :(只需添加它就可以了,或者你可以使用'iframe'將它加載到'iframe'中,但是這真的很尷尬.. –

+0

確實,iframe它只是尷尬..但現在,它似乎是唯一的答案。嗯,我試圖刪除淡入淡出效果,但它沒有奏效。也許我改變了代碼在右邊但是我不能完成它..你可以發佈整個代碼嗎? –