技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> JavaScript --> javascript DOM操作中的insertAdjacentHTML方法

javascript DOM操作中的insertAdjacentHTML方法

浏览:732次  出处信息

插入HTML内容与文本内容以前用的是innerHTML与innerText方法,今天微博上看到《JavaScript insertAdjacentHTML and beforeend》这篇文章,重新勾起对insertAdjacentHTML和 insertAdjacentText方法回忆,以前网上有个比较靠谱的兼容方法:

  1. /**

  2. * @param {HTMLElement} el

  3. * @param {String} where beforeBegin、afterBegin、beforeEnd、afterEnd

  4. * @param {String} html

  5. */

  6. function insertHTML(el, where, html){

  7. if(!el){

  8. returnfalse;

  9. }

  10. where = where.toLowerCase();

  11. if(el.insertAdjacentHTML){//IE

  12. el.insertAdjacentHTML(where, html);

  13. }else{

  14. var range = el.ownerDocument.createRange(),

  15. frag =null;

  16. switch(where){

  17. case"beforebegin":

  18. range.setStartBefore(el);

  19. frag = range.createContextualFragment(html);

  20. el.parentNode.insertBefore(frag, el);

  21. return el.previousSibling;

  22. case"afterbegin":

  23. if(el.firstChild){

  24. range.setStartBefore(el.firstChild);

  25. frag = range.createContextualFragment(html);

  26. el.insertBefore(frag, el.firstChild);

  27. }else{

  28. el.innerHTML = html;

  29. }

  30. return el.firstChild;

  31. case"beforeend":

  32. if(el.lastChild){

  33. range.setStartAfter(el.lastChild);

  34. frag = range.createContextualFragment(html);

  35. el.appendChild(frag);

  36. }else{

  37. el.innerHTML = html;

  38. }

  39. return el.lastChild;

  40. case"afterend":

  41. range.setStartAfter(el);

  42. frag = range.createContextualFragment(html);

  43. el.parentNode.insertBefore(frag, el.nextSibling);

建议继续学习:

  1. PHP Simple HTML DOM Parser 是一个不错的html/xml分析类    (阅读:5769)
  2. phpQuery:像jQuery一样处理DOM    (阅读:3315)
  3. 仅100行的JavaScript DOM操作类库    (阅读:3364)
  4. 对大量子节点DOM操作的最佳实践方式    (阅读:3129)
  5. 获取Dom元素的X/Y坐标    (阅读:2840)
  6. React入门:关于虚拟DOM(Virtual DOM)    (阅读:2543)
  7. DOM元素上jQuery事件几点学习    (阅读:2415)
  8. JS操作iframe里的dom    (阅读:2336)
  9. DOM Storage全解析    (阅读:2260)
  10. 页面DOM加载顺序和用户视觉浏览顺序的一致性    (阅读:2230)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1