Chrome/Firefox 兼容

By | 2021年12月31日

1 JS兼容

1.1 event

使用event时,如果 jquery click等事件函数上自带event参数,那么尽量用此参数,因为这种方式兼容chrome和firefox。如果自己在代码块里直接使用 event,firefox不兼容,至少firefox 64版本是这样的。下面是一些兼容写法:

(1)直接在html上写

(2)在jquery事件参数上写

附上 eventutil.getTarget 函数:

eventutil.getTarget = function (event) {  //返回事件的实际目标
  return event.target || event.srcElement;
};

1.2 underscope.js template 使用 html encode

下面的underscope template 是 ember模板页 policy-grid.hbs上的一部分:

<script type="text/template" id="policy-grid-cell-dropdown-tpl">
  <h4 class="ui dividing header user-none-select" style="margin:0">
        <span class="foldable-dividing" style="font-size:12px">
          <span class="small glyphicon glyphicon-triangle-bottom" style="margin-right:3px;"></span>
          @@groupNameContent@@
        </span>
  </h4>
  <div class="foldable-dividing-content" style="display:none;">
    <div style="margin-left:20px;">
      @@itemContent@@
    </div>
  </div>
</script>

<script type="text/javascript">
  var dropdownCellTpl = _.template($("#policy-grid-cell-dropdown-tpl").html());
</script >

在chrome中一点问题都没有,但是在firefox中,$("#policy-grid-cell-dropdown-tpl").html()得到的是空数据,这是因为 template 中使用了 <>这种,将他们改为 &lt; &gt; 后,就不是空数据了,此时也兼容 chrome。

2 CSS兼容

发表评论

您的电子邮箱地址不会被公开。