JavaScritpでオブジェクト要素のdata属性を変更しようとすると、ieだけうまく参照先を変更してくれません。
どうも、object要素自体を置き換える必要があるようです。
まずは正しく変更出来ない(ieのみ)パターンです。
function(id, url) {
var o = document.getElementById(id);
o.setAttribute('data', url);
}
data属性は変わっているようですが、ieだと変更されたurlを表示してくれません。
これを、object要素のクローンを作成指定リプレースするとちゃんと新しい要素を反映してくれます。
function(id, url) {
var obj = document.getElementById(id);
obj.setAttribute('data', url);
var clone = obj.cloneNode(true);
obj.parentNode.replaceChild(clone, obj);
}
jQueryを使用した場合も示しておきます。
function(id, url) {
var obj = $('#' + id).attr('data', url);
obj.replaceWith(obj.clone(true));
}