关于老古董浏览器的前端兼容

2022-09-11 16:36:11 +08:00
 lisianthus

我目前在一家做电视机顶盒内容的公司工作,内容一般通过安卓的 webview 呈现,需要对盒子环境做兼容。除了只能写原生代码外,还会遇到一些兼容性问题,写起来很痛苦。

贴下最近遇到的两个问题,大家有没有其他比较少见的兼容性问题可以分享下?

// 1. 通过 style.xxx 设置样式无效
var elem = document.getElementById('xxx');

// 无效
elem.style.top = "42px";
// 手动触发下重排,依然无效
setTimeout(function() {
    void(elem.offsetTop);
}, 10);

// 有效
elem.style.cssText = "top: 42px";

// 2. 定义和使用一些关键字报错,比如 default, catch 等
// 报错
var obj = { default: "xxx" };
// 正常
var obj = { "default": "xxx" };
// 报错
var value = obj.default;
// 正常
var value = obj["default"];
2825 次点击
所在节点    JavaScript
12 条回复
laolaowang
2022-09-11 16:50:28 +08:00
哈哈,慢慢来,会有很多头疼的兼容问题,尤其是 css
makelove
2022-09-11 17:03:13 +08:00
我也有个项目要兼容 10 年前的浏览器。不过我用 typescript ,设置目标 es3 就行,default 之类都会自动给你加引号
lisianthus
2022-09-11 17:05:53 +08:00
@laolaowang css 倒不怎么担心,基本没用流式布局,绝对定位一把梭,最多给一些动画和过渡效果加下浏览器前缀
learnshare
2022-09-11 17:25:47 +08:00
电视盒子不是普遍 Android 4.* 么,大概是因为早期谁开源了这样的 demo ?
lisianthus
2022-09-11 17:44:10 +08:00
@learnshare 是的,电视 apk 套壳一般都是 Android 4.x ,可以让安卓开个调试开关,然后前端 adb + chrome://inspect 连进去调。还有种 iptv 盒子,是运营商魔改的浏览器,这种很难搞
61162833
2022-09-11 18:34:43 +08:00
tv 版的 app 是用 webview 实现的?使用起来和原生实现有多大区别?
lisianthus
2022-09-11 19:45:30 +08:00
@61162833 有些纯原生,有些套壳。原生性能好,套壳的话,不播视频的情况下还算流畅吧
jchnxu
2022-09-12 19:56:36 +08:00
太难了哈哈,当时我们有一个解决方案,就是给用户的电脑上 360 浏览器。即便是 xp 也至少 ie9 。不过看起来你们是不能这么做的
xingguang
2022-09-13 09:55:08 +08:00
我有个项目要求兼容 IE8 ,给我烦死了,啥玩意都不能用,调试工具还是残废
dtdths1
2022-09-13 11:40:24 +08:00
哈哈,以前做过兼容 ie6 的浏览器打印,恐怖如斯
newghost
2022-09-13 14:38:18 +08:00
上 jquery1.x
lin07hui
2022-09-15 10:52:00 +08:00
上 zepto

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/879290

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX