【发布时间】:2014-11-03 00:24:00
【问题描述】:
我正在创建一个网站,其中一些页面至少包含一个媒体播放器,并且由于页面大小限制,我想仅在具有媒体的页面中加载媒体播放器 javascript 文件。我将媒体信息存储在页面头部的 javascript 对象中,其他脚本文件在正文末尾加载。
我发现this solution(使用$.getScript)非常好,但我想要一个不依赖任何框架的解决方案。我在jQuery 网站上看到了一个有趣的实现,我把它改成了这样:
<script>typeof(player) != 'object' || document.write(unescape('%3Cscript src="/assets/js/player/mediaplayer/jwplayer.js"%3E%3C/script%3E'));</script>
它就像一个魅力,但由于我不是 javascript 专业人士,我想知道它是如何工作的?
- 如果我们没有对象类型的变量,是否不需要检查第二个条件?
- 其他浏览器如何处理此代码?
- 它们(甚至是较旧的 IE)是否都跳过了第二个条件,或者它们可能会检查所有条件?
- 有没有更好的跨浏览器行为解决方案?
【问题讨论】:
-
没有办法在服务器上做到这一点?看起来会容易得多。
-
@mccannf 用php检查js对象?解析 html 输出以加载 js 文件?你确定它更快吗?
-
如果 html 最初是由 php 生成的,则不需要解析。只要它包含媒体对象,它就可以只包含所需的
<script>标签。.. -
正如@MarkReed 所说,使用 PHP 根据页面中提供的内容有条件地包含脚本。
-
@MarkReed 我正在使用 Joomla,并且正在系统插件中生成播放器对象,我正在模板的页面底部生成播放器脚本代码。
标签: javascript performance cross-browser