为了账号安全,请及时绑定邮箱和手机立即绑定

我如何在Firefox中做OuterHTML?

我如何在Firefox中做OuterHTML?

不负相思意 2019-07-27 10:46:28
我如何在Firefox中做OuterHTML?我的部分代码我得到了OuterHTML属性"<LI onclick="TabClicked(this, 'SearchName', 'TabGroup1');">Name "所以我可以做一些解决它的东西。虽然我在Firefox上的javascript中没有OuterHTML属性,但我找不到另一种获取此字符串的方法。想法?
查看完整描述

3 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

这是我们在pure.js中使用的函数:

function outerHTML(node){
    return node.outerHTML || new XMLSerializer().serializeToString(node);}

要使用DOM方式:

outerHTML(document.getElementById('theNode'));

它适用于跨浏览器

编辑:警告! XMLSerializer存在问题,它会生成XML(XHTML)字符串。
这意味着您最终可能会使用标签,<div class="team" />而不是
<div class="team"></div>
某些浏览器不喜欢它。最近我对Firefox 3.5感到很痛苦。

因此,对于我们的pure.jslib,我们回到了旧的安全方式:

function outerHTML(node){
    // if IE, Chrome take the internal method otherwise build one
  return node.outerHTML || (
      function(n){
          var div = document.createElement('div'), h;
          div.appendChild( n.cloneNode(true) );
          h = div.innerHTML;
          div = null;
          return h;
      })(node);
  }


查看完整回答
反对 回复 2019-07-27
?
元芳怎么了

TA贡献1798条经验 获得超7个赞

正确的方法(对于非IE浏览器)是:

var sOuterHTML = new XMLSerializer().serializeToString(oElement);


查看完整回答
反对 回复 2019-07-27
?
catspeake

TA贡献1111条经验 获得超0个赞

如果你愿意使用jQuery那么它相对简单:

$('<div>').append( $(ElementSelector).clone() ).html();

如果选择了多个元素,这将获得多个元素的外部HTML


查看完整回答
反对 回复 2019-07-27
  • 3 回答
  • 0 关注
  • 395 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信