记录一次 iOS 16.1 JavaScript 语法兼容性问题
在使用 Next.js 开发一个线上应用的时候,发现页面在 iOS 16.1 点击没反应。当时得到这个问题反馈的时候,我第一反应肯定是 JavaScript 语法兼容性的问题。于是开启了 Debug 的过程。
在使用 Next.js 开发一个线上应用的时候,发现页面在 iOS 16.1 点击没反应。当时得到这个问题反馈的时候,我第一反应肯定是 JavaScript 语法兼容性的问题。于是开启了 Debug 的过程。
基础不扎实引起的知识回炉
今天扒拉一段线上代码的时候发现一个脚本是 link
标签引入,因此便没多想,直接引用到自己的工程中,一通命令行操作准备验证完提交到远程的时候,脚本不工作了。what???
潜意识告诉我,脚本不都是下载下来自动执行的吗?
后来换成 script
标签发现竟然是可以的,一些log也都出来了。
这里面究竟是什么在作妖,一顿 google,发现 Stack Overflow 上已经有了答案。
Difference between script
and link as="script"
tags
原来,link
中的 rel
属性仅仅标识的是当前 href 的文档与当前文档之间的联系,可能会有 stylesheet
, 这是我们经常用到的一个值,另外还有经常遇到的 preload
, 被用于预加载。因此当我的页面用的 link preload
去加载一个 script
的时候,本质仅仅是提前进行了网络下载,被下载的 script
并没有被加载到 html
中运行。