我正在为一些 html/iframe 链接使用 shadowbox,它可以有效地在灯箱中打开页面。一切都很好 - 除非有人在 javascript 加载完成之前点击。
现在,显而易见的答案是不使用链接作为加载 shadowbox 的目标。但是,如果禁用 javascript,这会带来可用性问题。有没有人对如何解决问题有任何想法?我正在考虑加载 javascript 内联,这将停用链接,直到页面完成加载,尽管我不完全确定我会如何处理。
欢迎所有想法!
我正在为一些 html/iframe 链接使用 shadowbox,它可以有效地在灯箱中打开页面。一切都很好 - 除非有人在 javascript 加载完成之前点击。
现在,显而易见的答案是不使用链接作为加载 shadowbox 的目标。但是,如果禁用 javascript,这会带来可用性问题。有没有人对如何解决问题有任何想法?我正在考虑加载 javascript 内联,这将停用链接,直到页面完成加载,尽管我不完全确定我会如何处理。
欢迎所有想法!
一般来说,我认为这不是问题,但你不能直接在链接之后直接调用 shadowbox 处理器内联吗?
IE:
.link, .link, .link 脚本 $(".link").shadowbox(); /脚本
您可以将链接定义为
<a id="myLink" href="#" onclick="return false">...</a>
然后在加载 javascript 后重新分配 click 事件处理程序。或者,如果您的链接有非 JavaScript 替代项:
<a id="myLink" href="/path/to/nonJS/alternative.html">...</a>
同样,当您的 JavaScript 加载时,您可以添加一个单击事件处理程序并覆盖默认操作。
如果加载所有脚本需要一段时间,您可能会重新考虑是否需要立即加载所有脚本。如果你这样做了,那么你可以实现一个加载屏幕(下面的例子使用 jQuery,但它不是必须的):
<div id="loading">
Loading...
</div>
<div id="content" style="display: none;">
// Site content...
</div>
// Load your scripts here...
<script type="text/javascript" src="..."></script>
<script type="text/javascript">
$(document).ready(function() {
$('#loading').hide();
$('#content').show();
});
</script>
这样,在加载所有脚本之前,您的网站内容是不可见的。