1

我正在为一些 html/iframe 链接使用 shadowbox,它可以有效地在灯箱中打开页面。一切都很好 - 除非有人在 javascript 加载完成之前点击。

现在,显而易见的答案是不使用链接作为加载 shadowbox 的目标。但是,如果禁用 javascript,这会带来可用性问题。有没有人对如何解决问题有任何想法?我正在考虑加载 javascript 内联,这将停用链接,直到页面完成加载,尽管我不完全确定我会如何处理。

欢迎所有想法!

4

2 回答 2

2

一般来说,我认为这不是问题,但你不能直接在链接之后直接调用 shadowbox 处理器内联吗?

IE:

.link, .link, .link 脚本 $(".link").shadowbox(); /脚本

于 2009-12-16T18:16:08.857 回答
0

您可以将链接定义为

<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>

这样,在加载所有脚本之前,您的网站内容是不可见的。

于 2009-12-16T18:26:34.827 回答