从这个JSFiddle可以看出:http://jsfiddle.net/cYxy7/1/
我正在使用jQuery来更改对象标签的'data'属性。但是,即使我能够更改源代码中的数据属性,对象的实际数据流也不会改变,并且播放相同的视频。有谁知道修复?
我尝试了一些'刷新'技术,到目前为止还没有任何工作。
HTML:
<object data="currentURL"></object>
jQuery的:
$(document).ready(function(){
$('body').on('click', "button#switch", function() {
$( "object" ).attr("data", newURL);
});
})
答案 0 :(得分:0)
重新加载flash对象非常棘手。
尝试使用这个简单的flashloader或SWFObject。
答案 1 :(得分:0)
修改强>
我发现了一些更奇怪的东西。在更改对象的盒子模型之前,更改参数不起作用:
$(document).ready(function(){
$('body').on('click', "button#switch", function() {
$( 'object param[name="flashvars"]' ).attr("value", "hostname=www.twitch.tv&channel=liquidwifi&auto_play=true&start_volume=25");
$( "object").attr('data', "http://www.twitch.tv/widgets/live_embed_player.swf?channel=liquidwifi").hide().show();
});
})
这完美有效:http://jsfiddle.net/W7NTd/1/
由于一些奇怪的原因,更改param值不起作用,只创建新的html似乎对我有用:
$(document).ready(function(){
$('body').on('click', "button#switch", function() {
$('object param[name="flashvars"]').attr('value', $('object param[name="flashvars"]').attr('value').replace('ivan', 'liquidwifi'));
var new_html = $('#wrapper').html();
$('#wrapper').html(new_html);
});
})
我为此添加了一个包装器。
答案 2 :(得分:0)
您需要更新参数,然后更新数据属性:
$( "object param[name=flashvars]" ).attr("value", "hostname=www.twitch.tv&channel=liquidwifi&auto_play=true&start_volume=25");
$( "object").css('display', 'none');
$( "object").attr('data', "http://www.twitch.tv/widgets/live_embed_player.swf?channel=liquidwifi").css('display', '');
答案 3 :(得分:0)
将此附加到您的代码中。这可能有所帮助。
$("object param[name=flashvars]").attr("value", $("object").attr("data"));
答案 4 :(得分:0)
以下代码适用于我
$( "object" ).replaceWith('<object data="' + newURL + '"></object>');
答案 5 :(得分:-2)
原因是你没有改变参数值
更改对象attr时,也会更改param flashvars值
演示: http://jsfiddle.net/cYxy7/3/
$(document).ready(function () {
$('body').on('click', "button#switch", function () {
alert("The object's 'data' attritube is currently: " + $("object").attr("data"));
$("object").attr("data", "http://www.twitch.tv/widgets/live_embed_player.swf?channel=liquidwifi");
$("param[name='flashvars']").attr("value", "hostname=www.twitch.tv&channel=liquidwifi&auto_play=true&start_volume=25");
alert("The object's 'data' attribute is now: " + $("object").attr("data"));
});
})
喝彩!