即时加载 Amazon MP3 小部件

Posted

技术标签:

【中文标题】即时加载 Amazon MP3 小部件【英文标题】:Load Amazon MP3 widget on the fly 【发布时间】:2012-02-05 06:14:52 【问题描述】:

让这个工作起来我感到非常沮丧。我想动态加载/更新一个亚马逊 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】:

你可以试试这个。您将设置 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>

【讨论】:

以上是关于即时加载 Amazon MP3 小部件的主要内容,如果未能解决你的问题,请参考以下文章

Amazon Mechanical Turk 中人群语义分割小部件的初始值属性出现错误标识符错误

如何在颤动中加载主小部件之前显示加载小部件?

从 Amazon S3 流式传输 MP3

如何正确删除小部件并更新/重新加载小部件

当前小部件完成加载后如何执行方法?

需要获取数据的 Android 小部件仅显示加载