【发布时间】:2016-02-05 14:54:08
【问题描述】:
我正在运行一个脚本(hack)来欺骗 Safari 在响应式页面上正确调整视频大小。下面的脚本等待片刻然后隐藏,然后显示一个视频,使 Safari 意识到它应该将视频扩展到适当的大小。
我担心$(document).ready 可能会过早地触发脚本(即在视频加载之前),从而导致脚本无法执行它应该对视频执行的操作。是否有可能使用$(document).ready 脚本可能会触发,但由于视频在设置的毫秒后未加载视频不会被隐藏/显示?
我应该使用window.onload(或其他方法吗?)来确保我的隐藏/显示大小调整技巧有效吗?
在我的测试中,脚本大部分都可以正常工作,即使在我清除缓存时重新加载也是如此。但是有几次,当我在随机计算机上加载页面时,在我重新加载页面之前,视频的大小不会正确。使用window.onload 似乎不太理想,因为用户可能会在页面内容加载时注意到大小不正确的视频,或者在它之后看到黑客在行动。
<script><!-- Super hack to toggle display block/none which tricks Safari into properly sizing video-->
$(document).ready(function() {
$("#video1").delay(3000).hide(0, function() {
$("#video1").delay(3500).show();
});
});
</script>
【问题讨论】:
-
我已经清理了你最初的声明。大块的单词可以让人们远离一个问题,所以我试图通过将它分成相关的段落来使其更易于管理(并添加了代码格式,这也提高了可读性)
标签: javascript html delay document-ready