2013-01-09 109 views
0

我在ipad和iphone的fancybox遇到麻煩。有時應該打開燈箱的鏈接沒有迴應。鏈接CSS被重置,燈箱不顯示。在桌面瀏覽器上,它工作正常。鏈接打開fancybox不工作在ios

我認爲它與屏幕大小,ios設備上的縮放級別以及fancybox如何確定框的大小和位置有關。我注意到,如果我重新加載頁面,鏈接有時會起作用。放大後,鏈接不再有效。

我沒有選擇,任何幫助將不勝感激。

+0

該死的我和我的閱讀障礙。我檢查了桌面Chrome和Firefox **多次**沒有任何問題,然後又回到了這個問題,並意識到你明確指出問題出現在ios中,而不是在桌面瀏覽器中。|| **無論如何**,在我的iPod touch中檢查出來,果然,什麼都沒有發生。初步想法:使用Safari瀏覽器檢查器查看控制檯必須說的話。爲fancybox插件設置一個回調,並在回調中放置'console.log('test')'來查看它是否在ios中觸發。 http://moduscreate.com/enable-remote-web-inspector-in-ios-6/ – Joonas

+0

想到的另一個想法是:嘗試隔離鏈接和相關的代碼。分階段剝離代碼,直到問題消失爲止。或者直接用一個乾淨的文檔測試它,看看它是否在ios中起作用(通過乾淨的文檔,我的意思是鏈接和fancybox的基本部分)。 – Joonas

回答

0

它既不是一個iOS或fancybox的問題。

除了您的驗證問題,如

Mismatch between Public and System identifiers in the DOCTYPE declaration 

...因爲您有:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

...當你應該有:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 

...(如果你能看到其中的差異),你還可以在http://creactor.nl/script/javascript.js文件中找到一些與iOS發生fancybox衝突的行:

var myLinks = document.getElementsByTagName('a'); 
for(var i = 0; i < myLinks.length; i++){ 
    myLinks[i].addEventListener('touchstart', function(){this.className = "hover";}, false); 
    myLinks[i].addEventListener('touchend', function(){this.className = "";}, false); 
} 

我不是在iOS的專家,所以我不能告訴你如何重新寫這幾行,但如果你隔離他們,然後將的fancybox工作得很好。

我對你的網站做了一些小的清理工作,包括設置一個合適的DOCTYPE並重新組織腳本順序,並且註釋掉了上面的那些行和fancybox在我的iPad上正常工作。

檢查JSFIDDLE

+0

嗨肯菲克,謝謝你的努力!我會應用您的更改,並會通知您是否解決了問題。 – Ellifino

+0

好吧,我已經改變了我的網站的代碼,迄今爲止它似乎已經解決了。似乎主要的罪魁禍首是你提到的JavaScript條目。再次感謝! – Ellifino