2012-01-08 40 views
3

我有一個非常令人沮喪的時間讓這個工作。我想動態加載/更新亞馬遜的MP3小部件。即時加載亞馬遜MP3小部件

亞馬遜提供了兩個腳本來包含在小部件的預期目標位置(https://widgets.amazon.com/Widget-Source/)。我想用點擊事件中的新小部件替換小部件。

我曾嘗試將腳本作爲字符串插入到使用jQuery的html()和appendTo()的DOM元素中。我知道注射在某種程度上起作用,因爲我得到了我添加到測試警報的結尾。

我已經嘗試使用createElement(),這裏推薦這裏:Can't append <script> element。同樣,alert()會觸發,但不會顯示小部件。

我發現有人在這裏處理相同的問題:Is it possible to programmatically add Amazon MP3 widgets。我有希望,因爲它有一個公認的答案,但我仍不明白它是如何幫助將新小部件引入到DOM中。

<script type='text/javascript'> 
var amzn_wdgt={widget:'MP3Clips'}; 
amzn_wdgt.tag='widgetsamazon-20'; 
amzn_wdgt.widgetType='ASINList'; 
amzn_wdgt.ASIN='B0011Z0YR2,B00137W4P8,B0013G0PG4,B001AU8ZLK,B001AUCJZ8,B001AUEMDK,B001AU8YB6,B001AU8YBQ,B001AU8YCK,B001AUCK2U,B001AUEMFS,B001AUCK52,B001AU6XE6,B001AUEMH6'; 
amzn_wdgt.title='What I\'ve been listening to lately...'; 
amzn_wdgt.width='250'; 
amzn_wdgt.height='250'; 
amzn_wdgt.shuffleTracks='True'; 
amzn_wdgt.marketPlace='US'; 
</script> 
<script type='text/javascript' src='http://wms.assoc-amazon.com/20070822/US/js/swfobject_1_5.js'> 

感謝。

回答

0

你可以試試這個。您將設置amzn_wdgt的屬性,然後當有人單擊您的元素時,它將加載該腳本,並執行與設置的對象相關的任何操作。

<script> 
var amzn_wdgt={widget:'MP3Clips'}; 
amzn_wdgt.tag='widgetsamazon-20'; 
amzn_wdgt.widgetType='ASINList'; 
amzn_wdgt.ASIN='B0011Z0YR2,B00137W4P8,B0013G0PG4,B001AU8ZLK,B001AUCJZ8,B001AUEMDK,B001AU8YB6,B001AU8YBQ,B001AU8YCK,B001AUCK2U,B001AUEMFS,B001AUCK52,B001AU6XE6,B001AUEMH6'; 
amzn_wdgt.title='What I\'ve been listening to lately...'; 
amzn_wdgt.width='250'; 
amzn_wdgt.height='250'; 
amzn_wdgt.shuffleTracks='True'; 
amzn_wdgt.marketPlace='US'; 

$('.clickMe').click(function(e){ 
    e.preventDefault(); 
    if(typeof amzn_wdgt != 'undefined'){ 
     $.getScript('http://wms.assoc-amazon.com/20070822/US/js/swfobject_1_5.js'); 
    } 
}); 
</script>