Προς το περιεχόμενο

Πρόβλημα με javascript στον Firefox


macabre_sunsets

Προτεινόμενες αναρτήσεις

Δημοσ.

Χρησιμοποιώ το SqueezeBox για να πετύχω ένα LightBox effect. Όμως το παραμετροποίησα λιγάκι και πλεον όταν κάνω click πάνω σε κάποιες εικόνες απλά μαυρίζει το body της σελίδας και εικόνα δεν φαίνεται. Εαν κάνω reload και πατήσω πάλι πάνω στην εικόνα τότε παίζει μια χαρά. Να συμπληρώσω πως ακόμα και με ESC δεν φεύγει το μαύρο overlay από την σελίδα, με αποτέλεσμα να μην μπορεί να κάνει τίποτα ο επισκέπτης παρά μόνο reload. Η συμπεριφορά αυτή υπάρχει μόνο στον Firefox (και Iceweasel) ενώ σε Chrome και IE8 παίζει κανονικά.

 

Ο λόγος που χρησιμοποιώ SqueezeBox και όχι κάποιο άλλο είναι επειδή αυτό είναι το default του Joomla! και θα ήθελα να αποφύγω την χρήση κάποιου τρίτου script.

 

Οι παραμετροποιήσεις που έκανα είναι οι ακόλουθες:

Άλλαξα το

>window.addEvent('domready', function() {[...]
SqueezeBox.assign($$('a.modal'));[...]

σε

>window.addEvent('domready', function() {[...]
SqueezeBox.assign($$('img.modalized'));[...]

με αποτέλεσμα να εκτελείται το script όταν επιλέγω μια εικόνα με class="modalized" (αντί για links με class="modal").

 

Έπειτα άλλαξα το

>this.url = ((this.element) ? (this.element.get('href')) : subject) || this.options.url || '';

σε

>this.url = ((this.element) ? (this.element.get('src').replace('_thumb', '')) : subject) || this.options.url || '';

ώστε να παίρνω το src της εικόνας και όχι το href από το <a> tag. Επίσης, αφαιρώ το _thumb από το όνομα της εικόνας ώστε να πάρω το filename της κανονικής εικόνας.

 

Εάν κάνω alert το this.url μου επιστρέφει το σωστό filename πάντα, ακόμα και αν δεν εμφανίζει το effect σωστά. Προσπάθησα μέσω FireBug να βγάλω κάποια άκρη αλλά δυστυχώς δεν τα κατάφερα. Να αναφέρω πως αν παραλείψω το .replace('_thumb', '') τότε το script παίζει μια χαρά.

 

Έχετε καμιά ιδέα γιατί να μην παίζει το script; Τόσο πολύ εππηρεάζεται από το replace; Έχω φτιάξει ένα demo εδώ εάν θέλει κάποιος να το δοκιμάσει με FireFox ή να δει τα scripts.

Δημοσ.

Ο firebug μου επιστρέφει αυτό το error όταν σπάει:

>
Firebug's log limit has been reached. 0 entries not shown.		Preferences	 
uncaught exception: [Exception... "Could not convert JavaScript argument arg 0 [nsIDOM3Node.compareDocumentPosition]" nsresult: "0x80570009 (NS_ERROR_XPC_BAD_CONVERT_JS)" location: "JS frame :: http://testing.macabre-sunsets.gr/box/mootools-core.js :: anonymous :: line 1" data: no]

 

Γιατί δεν τον αφήνεις με το "_thumb" το filename, και να βγάλεις το thumb μόνο εκεί που εμφανίζεται;

Δημοσ.

Ομολογώ πως δεν είχα δει την κονσόλα για να δω αυτό το error. Παρ'όλα αυτά δεν καταλαβαίνω τι λέει :/

 

Πιστεύοντας ότι φταίει το script, είπα να δοκιμάσω με ένα άλλο. Δυστυχώς και πάλι η συμπεριφορά είναι ίδια με εξαίρεση ότι πλέον εμφανίζεται το κουμπί για το κλείσιμο του «παραθύρου». Ομοίως, αν το κλείσω και πατήσω στην εικόνα πάλι τότε αυτή φαίνεται σωστά. Οπότε οδηγούμαι στο συμπέρασμα ότι για κάποιο λόγο δεν μπορεί να φορτώσει την full-sized εικόνα.

 

Δοκίμασα να βάλω το replace ακριβώς στο σημείο που εμφανίζεται η εικόνα αλλά το αποτέλεσμα ήταν και πάλι ίδιο. Αρχίζω να πιστεύω πως δεν γίνεται αυτό που θέλω όπως το προσπαθώ :/

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...