B-Teck!

お仕事からゲームまで幅広く

【JavaScript】Objectタグのdata要素を変更する

HTMLElement.setAttribute("data",変更後data要素)だとIEでうまくいかなかったので、
IEも対応する場合はObject要素自体のDOMをreplaceChildで置き換えてやる必要がある。

/**
* changeObjectData
* objectタグの表示内容を更新する
*
* @param {object} element - 変更対象領域のエレメント
* @param {string} data - 変更後のdata要素
* @return {boolean} true
*/
function changeObjectData(element,data){
   //現在のObjectタグの内容を複製
   var cln = element.cloneNode(true);
   //複製したもののdata要素を変更する
   cln.setAttribute("data",data);
   //自分自身をdata要素変更後のエレメントに置き換える
   element.parentNode.replaceChild(cln, element);
   return true;
}

// ex.利用例
changeObjectData(document.getElementById("hoge"),"pdf/fuga.pdf");