Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

transparent iframe

Îåêßíçóå áðü ôï ìÝëïò paris171. Τελευταία δημοσίευση από το μέλος paris171 στις 28-09-2007, 17:44. Υπάρχουν 7 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  24-09-2007, 05:55 35300

    transparent iframe

    i have an iframe and i want its backgroung color to be transparent so it takes the background of the main page

    i used <iframe src="..." allowtransapency="true"> and it worked but w3 validator doesnt accepd tha allowtransaparency attribute for HTML 4.01 Transitional doctypes

    i used     <script type="text/javascript">    document.write ('<iframe src="..." allowtransparency="true"></iframe>');      </script>
    and it worked again but the validator didnt accept the </iframe> tag because its in a script.

    i tried <\iframe> instead of </iframe> and this time it worked and the validator did accept it, BUT everything i wrote UNDER the <\iframe> tag was ignored.
    i dont know why but nothing would appear in any browser


    is there ANY way to solve this problem at ANY level??

    PS1 this problem only appears in ie. firefox's default value for allowtransarency is true so everything works fine
    PS2 i just got a headache!!
  •  24-09-2007, 08:54 35302 σε απάντηση της 35300

    Απ: transparent iframe

    Επειδή έχεις πονοκέφαλο, δεν θα σου ψάλλω τον εξάψαλμο που έχουμε για όσους γράφουν αγγλικά ή greeklish παρότι στους κανόνες αναφέρεται ότι όποιος δεν γράφει ελληνικά άνευ σοβαρού λόγου κινδυνεύει να ακούσει τον εξάψαλμο από την ανδρική χορωδία του DotNetZone μετά από τη συνήθη ζυθοποσία που ακολουθεί κάθε συνάντηση. Εδώ που τα λέμε, ίσως μετά τη ζυθοποσία να ακουγόμαστε καλύτερα ...

    Ανακατώνοντας tags, προσθέτοντας ανύπαρκτα (δεν υπάρχει tag που να αρχίζει με \ ) και προσπαθώντας να κάνεις κόλπα με script δεν θα βγάλεις άκρη. Καταρχήν, αν το attribute που χρησιμοποιείς δεν υπάρχει στην HTML 4 δεν υπάρχει περίπτωση να το δεχτεί ο validator. Τί νόημα έχει εξάλλου να χρησιμοποιείς validator αν θέλεις να τον κοροϊδέψεις? Αν ο IE και ο Firefox δουλεύουν καλά τί σε νοιάζει? Ίσως να μπορείς να χρησιμοποιήσεις CSS class για να θέσεις την τιμή του transparency αν και δεν έχω ψάξει ποτέ για κάτι τέτοιο.

    Εδώ που τα λέμε, το IFRAME είναι συμβατό με την HTML 4?


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  24-09-2007, 17:43 35339 σε απάντηση της 35302

    Απ: transparent iframe

    Ξεκινώντας από το τελος... Ναι, τα iframes ειναι συμβατά με την html 4.01

    Εχω ψάξει και εχω πειραματιστεί πάρα πολύ με attributes και με css class και δεν εχω καταφερει τίποτα... Είμαι σχεδόν σίγουρος ότι η λύση δεν είναι εκεί όσο και αν θα μάρεσε γιατί θα γλυτωνα τα scripts κλπ..

    Δεν είπα δουλευουν καλα στον ie! Ειπα ότι δουλεύουν καλα στον firefox αλλα όχι στον ie!

    Το ερωτημα για το attribute δεν ειναι πως να το κανω να το δεχτει ο validator προφανώς, αλλά πως να έχω το αποτέλεσμα που θέλω ΧΩΡΙΣ να το χρισιμοποιήσω.
    Δεν μπορώ να δεχτώ δλδ ότι αν θες να ακολουθήσεις τα προτυπα του w3 δεν μπορεις να εχεις transparency. Μου ακουγεται κάπως..!

    Τελικα όμως με βοήθησες!!
    Επειδή μου την είπες ότι κάνω αλχημίες και κατηγόρησες τον κώδικα μου, ξαναπέρασα τη σελίδα από τον validator έχωντας το tag </iframe>, για να σου δείξω ότι το w3 μου έλεγε να βάλω \ αντι για /. Ιδού:

    A common error (and the most common source of erroneous bug reports for the WDG HTML Validator) occurs when writing HTML tags within a SCRIPT element:
    <script type="text/javascript">
    <!--
    // This is an error!
    document.write("</P>");
    // -->

    </script>

    As mentioned in the HTML 4 Recommendation's note about specifying non-HTML data in element content, end tags are recognized within SCRIPT elements, but other kinds of markup--such as start tags and comments--are not. This is an unintuitive quirk of SGML for elements defined to have CDATA content.

    Authors should avoid using strings such as "</P>" in their embedded scripts. In JavaScript, authors may use a backslash to prevent the string from being parsed as markup:

    <script type="text/javascript">
    <!--
    document.write("<\/P>");
    // -->

    </script>


    το παραπάνω είναι λοιπον από το help του w3. οποτε ναι, υπάρχουν tags που ξεκινάνε με \, και χρησιμοποιούνται μέσα στα scripts.

    Κάνοντας όμως όλο αυτό για να σου δείξω ότι έχεις άδικο παρατήρησα ότι θέλει εκτός απο \, και / πραγμα που χθες δεν το είχα παρατηρήσει.
    Βάζοντας λοιπόν και τις δύο καθέτους τώρα όλα λειτουργούν ok και ξεπεράστηκε το πρόβλημα που δε φαινόταν τίποτα κάτω από το <\iframe> tag.



    αυτό που ακόμα όμως θέλω να ρωτήσω είναι χωρίς τη χρήση scripts δεν μπορώ να έχω transparency στα πρότυπα του w3??
    μήπως επισης θα μπορύσα να αλλάξω doctype (χωρις να χρειαστει να κάνω τραγικές αλλαγες στον κώδικα) σε καποιο που να δέχεται το attribute allowtransparency??


    ps Παναγιώτη χθες είχα λιώσει στο google και στα ξενα forums όπου τη στιγμή λίγο πριν παω να κοιμηθώ όταν έκανα το post της απελπιστικής εκκλησης για βοήθεια, απλά δεν μπορούσα να μιλήσω ελληνικά! θα το διορθώσω σύντομα..
  •  24-09-2007, 20:09 35351 σε απάντηση της 35339

    Απ: transparent iframe

    Υπάρχει κάποιος ιδιέταιρος λόγος που θέλεις ντε και καλά να χρησιμοποιήσεις iframe;

    Το πρόβλημά σου θα λυνόταν πολύ πιο εύκολα με ένα απλό include file - σε οποιαδήποτε μορφή μπορεί να εμφανιστεί αυτό, ανάλογα τη server-side πλατφόρμα στην οποία γράφεις. Για να είσαι εδώ, χρησιμοποιείς μάλλον κάτι Microsoft-ικό; Άρα ASP, ASP.NET 1.1 ή ASP.NET 2.0;

    Για πές μας λίγα περισσότερα όσον αφορά το τί ακριβώς θέλεις να κάνεις. Όταν βρίσκεις τον εαυτό σου να παλεύει απελπισμένος για μερόνυχτα, συνήθως απλώς δεν ξέρεις οτι υπάρχει και πιό εύκολος τρόπος, το έχεις πάρει στραβά απο την αρχή ... Stick out tongue ... τουλάχιστον αυτή είναι η δική μου εμπειρία.






    Υ.Γ ... και για να ακριβολογούμε ... όχι, δεν υπάρχει tag που να ξεκινάει με " <\ ". Απλώς στο παράδειγμα που βλέπεις χρησιμοποιείς το "\" για να κάνεις escape το άλλο slash και να μή το λάβει υπ'όψην του ο W3C Validator ως end tag. Αυτό, μόνο μέσα σε JavaScript strings. Δεν είναι "νέο" tag. Είναι language feature ...

    Angel
    O:]
  •  25-09-2007, 20:38 35416 σε απάντηση της 35351

    Απ: transparent iframe

    για το υστερογραφο δεκτή η παρατήρηση. :)


    για αυτο που ειπες  για το οταν βρισκω τον εαυτο μου απελπισμενο, συμφωνώ απόλυτα!!
    το εχω παρατηρησει και εγω!

    αλλα στην προκειμένη περίπτωση δε νομίζω ότι έχω κάνει κατι πολύ παραδοξο
    εβαλα στη σελίδα μου ενα iframe, και θέλω το background του να είναι διάφανο.
    ποσο δύσκολο μπορεί να είναι;; η απαντηση είναι <iframe src="..." allowtransparency="true">

    so easy! κανονικά θα το είχα αφήσει τώρα και θα ηταν μια χαρα, αλλα εξαιτίας της τελειομανείας μου θέλω να το κάνω να το δέχεται κ ο w3 validator o οποιος δε δεχεται το attribute allowtransparency...
    και εδω ειναι που εχω κολλήσει..

    (τελικα το κολπο με το script επιασε μια χαρα κ ο validator δεν βρισκει error, αλλα και παλι δε μαρεσει να ειναι απαραιτητο να κανεις enable scripts για να δεις τα κειμενα της σελιδας, οποτε δεν εχω βρει ακομα τη βελτιστη λυση)

    anjelinio χρησιμοποιω html (doctype html 4.01 transitional) και ο λογος που εχω βάλει iframe στη σελίδα είναι ότι έχω και ενα flash mp3 player που δε θέλω να κόβεται κ να ξαναφορτώνει όποτε κάποιος πατάει σε ενα εσωτερικό link. οποτε όλο το κυριώς περιεχόμενο του site βρίσκεται μεσα στο iframe ενω απέξω είναι μονο η sidebar με το site map και τον flash player.
    o λογος ακόμα που θέλω το iframe να είναι διάφανο είναι γιατί δεν υπάρχει λόγος να ξαναφορτώνεται ουτε το background του iframe αφου κάθε φορά θα είναι το ίδιο. οποτε το background του iframe το εβαλα στην κεντρικη, και το iframe που θα μπει απο πανω θέλω να είναι διαφανο

    περιμενω σχολια...:)
  •  28-09-2007, 03:50 35541 σε απάντηση της 35416

    Απ: transparent iframe

    Λοιπον επειδη το έψαξα αρκετα , όχι επειδη είναι κανενα σοβαρό θέμα αλλα επειδη ειχα όρεξη, να πω που κατέληξα για οποιον μελλοντικα τον απασχολήσει το ίδιο θέμα

    καταρχην για να είναι διαφανο ενα iframe πρεπει πρωτα η σελίδα-περιεχόμενο να έχει ορισμένο το body της ως transparent. (είτε ως <body background-color="transparent" είτε απο το css)
    αφού έχει γίνει αυτό θα πρέπει μετά να μπει το attribute allowTransparency="true" στο iframe tag. (αυτό δεν μπορείς να το αποφύγεις με κανενα τρόπο) btw αν δεν το βάλεις η default τιμη του για τον firefox είναι true ενώ για τον ie και όλους τους άλλους είναι false, οποτε εκει θα δημιουργηθεί πρόβλημα.


    ο w3c validator τωρα δε δέχεται το allowtransparency σε ΚΑΜΜΙΑ περιπτωση. Ουτε στην XHTML ούτε στην HTML, ούτε strict ουτε transitional ούτε τίποτα!
    με άλλα λόγια ή transparent iframe θα έχεις, ή w3c vallidation.

    ενας τρόπος για να γλιτώσεις το error του validator είναι να βάλεις το iframe μέσα σε ένα script:
    <script type="text/javascript">    document.write ('<iframe src="..." allowtransparency="true"></iframe>');      </script>

    αυτό όμως δεν έχει αξία γιατί δε συνετίζεσαι με τα πρώτυπα του w3c ώστε να είναι το site συμβατό με τα πρώτυπα άρα και με ΟΛΟΥΣ τους browsers, απλά "κρύβεις" το σφάλμα.

    τέλος η μοναδική "σωστή" λύση που ανακάλυψα είναι να φτιάξεις δικό σου dtd διορθώνοντας το κανονικο και προσθέτοντας το επιθυμητό attribute στο συγκεκριμένο tag.

    και εδω θέλω τη βοήθεια σας ελπίζω για τελευταία φορά για το συγκεκριμένο θέμα

    βρήκα που ακριβώς στο dtd πρεπει να γράψω το allowtransparency και τι να γράψω απο δίπλα για να δείξω τι τιμές θα μπορεί να πάρει.
    δε θα πρεπει όμως να γράψω και κάπου κώδικα για να καταλαβαίνει ο browser τι θα κάνει αυτό το attribute??

    αποτι ξέρω ακόμα ο κάθε browser έχει και ένα δικό του dtd. απο που θα μπορούσα να βρω το dtd του firefox ώστε να κάνω copy paste ότι χρειάζεται αφού ο firefox το υποστηρίζει έτσι κ αλλιώς;;
  •  28-09-2007, 12:27 35555 σε απάντηση της 35541

    Απ: transparent iframe

    Δεν μπορώ να πω ότι καταλαβαίνω ακόμα και τώρα τί προσπαθείς να πετύχεις. Αν κάνεις μία αναζήτηση στο google θα δεις ότι το allowtransparency είναι extension της Microsoft και ότι η σελίδα του frame όντως θα πρέπει να έχει το background-color=transparent. Αυτό το αναφέρει και στο reference της Microsoft για το συγκεκριμμένο tag, καθώς και ότι είναι default false.. Ως extension, αποκλείεται να το δεχτεί κάποιος validator.
    Τί νόημα έχει τώρα να κοροϊδέψεις τον validator? τη στιγμή που εσύ βάζεις μέσα ένα extension, η σελίδα σου παύει να είναι standard compliant, κι ας κοροϊδέψεις τον validator. To compliance έρχεται από την χρήση του standard όχι από το αν ξεγέλασες ένα validator.  Εκτός και αν αυτό που αναζητάς είναι κάτι σαν suppress warnings. Στην περίπτωση αυτή όμως μπορείς απλά να αγνοήσεις το μήνυμα του validator.

     


    Παναγιώτης Καναβός, Freelancer
    Twitter: http://www.twitter.com/pkanavos
  •  28-09-2007, 17:44 35579 σε απάντηση της 35555

    Απ: transparent iframe

    μα δεν προσπαθω να κοροιδέψω τον validator.

    νομιζα ότι με το να προσθέσω αυτο το extension στο dtd θα ειμαι καθόλα "νομιμος".
    και validation και το σωστό αποτέλεσμα ακομα και στους browsers που δε θα υποστήριζαν κανονικά το allowtransaparency.

    Many documents on the Web use non-standard elements such as EMBED and non-standard attributes such as the LEFTMARGIN attribute on the BODY element. These documents will not validate against standards like HTML 3.2 or HTML 4.0, but validation is too important a tool to be ignored for this reason.

    To validate documents with non-standard extensions, one can write a custom document type definition (DTD) that defines the elements. Extending an existing DTD to handle non-standard extensions can be relatively easy. As an example, we will extend the HTML 4.0 Transitional DTD to support the proprietary BGSOUND element and the proprietary LEFTMARGIN, TOPMARGIN, MARGINWIDTH, and MARGINHEIGHT attributes of the BODY element.


    http://htmlhelp.com/tools/validator/customdtd.html



    τι εχω καταλάβει λάθος;;
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems