javascript - 如何有条件地加载和运行 javascript 文件
问题描述
我有一个用例,我需要根据浏览器类型在我的 html 文件中加载和执行不同的 js 文件。
如果浏览器是 safari 我需要加载 <script type="text/javascript" src="./javascripts/applepay.js">
,如果浏览器是其他我需要加载两个 js 文件<script type="text/javascript" src="./javascripts/googlepay.js"></script>
和<script async src="https://pay.google.com/gp/p/js/pay.js" onload="onGooglePayLoaded()"></script>
.
您能否让我知道如何做到这一点?我尝试了其他帖子中提到的几个解决方案,但对我没有用。任何代码片段都会非常有帮助。
解决方案
我假设这是在加载主 HTML 时发生的。然后,您可以使用document.write()
为适当的脚本插入 HTML。
<script>
if (is_safari()) {
document.write('<script type="text/javascript" src="./javascripts/applepay.js"></' + 'script>');
} else {
document.write('<script type="text/javascript" src="./javascripts/googlepay.js"><' + '/script>');
document.write('<script async src="https://pay.google.com/gp/p/js/pay.js" onload="onGooglePayLoaded()"><' + '/script>');
}
</script>
有关实现该功能的多种方法,请参阅检测 Safari 浏览器。is_safari()
推荐阅读
- javascript - 是否可以创建全屏 HTML 弹出窗口,例如全屏视频播放器?
- ios - CollectionView 在 iPhone SE 模拟器上产生错误,但在 iPhone 11 模拟器上却没有
- html - 如何限制 CSS 选框可以滚动的长度?
- arrays - 从reactjs中的对象数组中删除重复值
- flutter - Flutter 定位堆栈复杂设计
- python - 无法创建 cudnn 句柄:CUDNN_STATUS_ALLOC_FAILED,无法获得卷积算法。这可能是因为 cuDNN 未能初始化
- android - 如何在 Android 运行应用程序视图中更改图标
- html - 如何制作内容在页脚处停止的固定侧边栏?
- tokenize - 遍历文档中的标记包含数字前面的点
- javascript - 使用 Node.js 解决“找不到包”错误