即时加载亚马逊MP3小部件

时间:2012-01-08 07:39:41

标签: javascript jquery dom widget amazon

我有一个非常令人沮丧的时间让这个工作。我想动态加载/更新亚马逊mp3小部件。

Amazon提供了两个脚本,可以包含在窗口小部件的预定目标位置(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'>

感谢。

1 个答案:

答案 0 :(得分: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>
相关问题