[英]HTML Object tag 'data' attribute wont update with jQuery change
從該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);
});
})
Flash對象要重新加載非常棘手。
嘗試使用此簡單的flashloader或SWFObject 。
編輯:
我發現了一些陌生的東西。 在更改對象的框模型之前,更改參數不起作用:
$(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/
由於某些奇怪的原因,更改參數值不起作用,只有創建新的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);
});
})
我為此添加了一個包裝器。
您需要先更新參數,然后再更新數據屬性:
$( "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', '');
將此附加到您的代碼中。 這可能會有所幫助。
$("object param[name=flashvars]").attr("value", $("object").attr("data"));
以下代碼對我有用
$( "object" ).replaceWith('<object data="' + newURL + '"></object>');
原因是您沒有更改參數值
在更改對象屬性時,還要更改參數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"));
});
})
干杯!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.