解决angular中的浏览器兼容性问题的方法介绍


当前第2页 返回上一页

原因:尚未明确

解决方案

  1. 升级组件版本,目前ng-zorro-antd 8.5之上的版本未见这个问题。
  2. 自定义页脚,加入额外的页脚,来替代确定功能,此时有两种方式来实现:
    只覆盖对应的按钮,如确定按钮,此时按钮的样式与默认的页脚按钮是不一致的,为保持一致,可以自定义样式,也可以直接使用默认页脚中按钮的样式,下例中选择直接使用组件库的样式:ant-calendar-ok-btn,第二步则是覆盖原来的按钮,可以使用绝对定位的方式来实现覆盖:

1

2

3

4

5

6

<nz-range-picker [nzRenderExtraFooter]="renderExtraFooterTpl">

<ng-template #renderExtraFooterTpl>

  <p>

    <button nz-button nzType="primary" class="ant-calendar-ok-btn abs-right">确 定</button>

  </p>

</ng-template>

对应css:

1

2

3

4

5

6

7

.abs-right {

  position: absolute;

  right: 12px;

  top: 7px;

  z-index: 1;

  box-shadow: none;

}

删除默认页脚,完全自定义实现页脚。此时需要删除原来的页脚,可通过:

1

2

3

::ng-deep .ant-calendar-footer-btn {

  display: none;

}

这种方式删除默认页脚,此时额外的页脚不可使用绝对定位。

问题:IE浏览器下,在多个tab页中切换,echart所在容器高度坍塌

原因:IE浏览器下父元素不能动态调整高度(即通过子元素动态改变调整高度)

解决方案:固定echart图表所在的容器高度


问题:IE浏览器下,初始化表单时,触发表单验证

原因:这个是IE的问题,IE10+实现了input事件,但是触发的时机却是错误的。比如在placeholder改变时,placeholder的文字不是英语的时候就会触发,Edge15+修复了这个问题,但是IE可能永远都不会修复这个问题。

解决方案

  1. 使用表单的reset()重置表单,但是重置的操作需要放在setTimeout中,或者通过其他手段将重置的操作作为表单初始化时的最后一个宏任务执行。这种方式经验证,最终的效果是,初始化表单后,表单输入元素的边框闪烁(红色)一下。
  2. 使用自定义的服务商插件(较为推荐),这种方式对原有代码的破坏性小(遵循了OCP原则),该插件是由DerSizeS提供的。只需要在对应的module中增加一个服务商即可

1

2

3

4

5

6

7

@NgModule({

    providers: [{

        provide: EVENT_MANAGER_PLUGINS, multi: true,

        useClass: UniqueInputEventPlugin, deps: [UNIQUE_INPUT_EVENT_PLUGIN_CONFIG],

    }]   

})

class MyModule {}

需要注意的是,插件需要自己添加到项目文件中(根据angular团队所说,这个插件修复了一个IE10或者IE11的bug,但是提交了太多的代码,这会给增加现有的应用的打包体积,虽然后面关于这个PR讨论了挺久,但是看样子是准备把这个放到FAQ里面,而不会把他并入框架),并在对应的模块中引用。

另注:IE的输入框会因为placeholder为中文而触发表单验证,placeholder改变了也会触发表单验证,所以,有一个讨巧的方法,placeholder里面的内容写成英文形式(推荐),但这显然不符合中文产品的需求,而且这显然没有国际化。所以可以想办法绕过这一条,使用 HTML实体(已验证,可行),Unicode编码(不可以)

更多编程相关知识,请访问:编程入门!!

以上就是解决angular中的浏览器兼容性问题的方法介绍的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

10 种快速优化 web 性能的手段(分享)

浅谈angular中的变化检测(change detection)

详解angular中的ngmodule(模块)

css3 cubic-bezier()实现链接悬停动画效果的方法介绍

详解angular中jsencrypt插件的使用方法

浅谈angular中优化绑定(脏检查)性能的小技巧

详解angular中的material安装与使用

如何搭建测试环境?angular测试工具集介绍

angular组件怎么进行通信?父子组件通信的2种方法

javascript作用域和作用域链的解析(附示例)

更多相关阅读请进入《前端》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...