我使用shadowbox一些html/iframe鏈接,這有效地打開了lightbox中的頁面。一切都很好 - 除非在加載完javascript之前有人點擊。鏈接JavaScript之前加載點擊(問題)
現在,顯而易見的答案是不使用鏈接作爲加載shadowbox的目標。但是,如果JavaScript被禁用,這會造成可用性問題。有沒有人對如何解決問題有任何想法?我正在考慮加載JavaScript內聯,將停用鏈接,直到頁面完成加載,雖然我不完全確定我會如何處理。
歡迎任何想法!
我使用shadowbox一些html/iframe鏈接,這有效地打開了lightbox中的頁面。一切都很好 - 除非在加載完javascript之前有人點擊。鏈接JavaScript之前加載點擊(問題)
現在,顯而易見的答案是不使用鏈接作爲加載shadowbox的目標。但是,如果JavaScript被禁用,這會造成可用性問題。有沒有人對如何解決問題有任何想法?我正在考慮加載JavaScript內聯,將停用鏈接,直到頁面完成加載,雖然我不完全確定我會如何處理。
歡迎任何想法!
一般來說,我認爲這是一個非問題,但是你不能直接在鏈接之後直接調用shadowbox處理器嗎? ( 「鏈接」)。
即:
。鏈路,。鏈路,.LINK 腳本 $太極拳(); /腳本
你可以定義你的鏈接,
<a id="myLink" href="#" onclick="return false">...</a>
,並重新分配click事件處理程序,一旦你的JavaScript加載。或者,如果你的鏈接有非JavaScript的替代品:
<a id="myLink" href="/path/to/nonJS/alternative.html">...</a>
同樣,當你的JavaScript加載後,你可以添加一個click事件處理程序,並覆蓋默認的動作。
如果需要一段時間才能加載所有腳本,則可能需要重新考慮是否需要立即加載所有腳本。如果你這樣做,那麼你可以實現一個載入畫面(下面的例子使用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>
這樣,直到所有腳本加載您的網站內容是不可見的。
鏈接對JavaScript禁用的用戶來說毫無價值。 – 2009-12-16 18:27:27
我從帖子中認爲JavaScript是該網站所必需的。我添加了一個沒有JS的替代鏈接語法。 – Annabelle 2009-12-16 18:46:36
我不知道這個問題是否有很好的廣義解決方案。但是,特別是對於打開iframe的shadowbox,合理的解決方案似乎是將javascript檢測放在內部頁面上,以確定它是否在iframe中打開。 – Matrym 2009-12-28 20:07:19