conditional comment

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hallo ,

Ik wil door middel van een conditional comment een (ander) bestand invoegen als het IE6 is,
Het onderste werkt alleen in IE, echter het bovenste ook in Firefox en dat is nou niet de bedoeling.

Iemand een oplossing ?

werkt alleen in IE6 en FF

<!--[if IE 6]>
<?php include("bestand.html"); ?>
<![endif]-->


werkt alleen in IE6

<!--[if IE 6]>
<SCRIPT LANGUAGE="Javascript">
alert("Congratulations! You are running Internet Explorer 7 or greater.");
</SCRIPT>
<P>Thank you for closing the message box.</P>
<![endif]-->

werkt alleen in IE6

<!--[if IE 6]> <?php include("nlcontent/prijzen_tekst.html"); ?> <![endif]-->
 
Laatst bewerkt:
PHP draait op de server en heeft dus helemaal niks te maken met de browser van de gebruiker; conditional comments treden pas in werking nadat PHP helemaal klaar is met zijn script.

Als je op PHP niveau de pagina anders op wilt bouwen voor IE users kun je gebruik maken van een van de $_SERVER vars, volgnesmij ['HTTP_USER_AGENT'] oid, die bevat informatie over waarmee de gebruiker je site opvraagt.
 
Frats bedankt voor antwoord
Ben al in de weer geweest met Browser Detection , maar schijnt niet altijd goed te werken

"Since browser detection is so unreliable, I am no longer maintaining this script."

ga eens proberen met useragent ,,,,

Dit werkt in alle IE versies en ook weer helaas in Chrome.........
Code:
<?php
    $ua = $_SERVER['HTTP_USER_AGENT'];
    if (substr($ua,strpos($ua,'MSIE')+6) < 7)
    //if (strpos($ua,'MSIE6') != false && strpos($ua,'Opera') === false)
    {
        /* the browser claims to be IE, and is not Opera */
        echo ie;
    }
?>
 
Waarom wil je eigenlijk browserdetectie? Het is, zoals al aangegeven, onbetrouwbaar en onhandig :)
 
Waarom wil je eigenlijk browserdetectie? Het is, zoals al aangegeven, onbetrouwbaar en onhandig :)


Ik wil een tekst bestand invoegen alleen in IE6 , dus zoek een goede manier hiervoor, welke maakt niet zoveel uit.
 
Nou,


Je kan dus gewoon de conditional-comment + php-include combo houden. Nadeel is dat in de broncode wel alle text te zien is, maargoed, wie let er nou op de broncode.

Zoiets dus:
HTML:
<!--[if IE 6]>
   <?php
      include("bestand.txt");
   ?>
<![endif]-->


Overgens is browser-sniffing (dus opvragen wat iemands browser is via php of Javascript) echt bad; een conditional-comment is veel netter. En het werkt 100% van de tijd; Alleen IE leest ze, dus als iemand met Firefox doet alsof ie IE is, maakt het helemaal niets uit.



:thumb:
 
Laatst bewerkt:
Als je het tekstbestand gewoon op de gewenste plek in de html zet, in een <div>'je met bijvoorbeeld:
HTML:
<p>Een regeltje gewone tekst voor alle browsers.</p>
<!--[if IE 6]>
   <div id="ie6only">
      <h2>IE6'ers, let op!</h2>
      <p>Deze tekst is alleen bestemd voor gebruikers van Internet Explorer 6.</p>
      <p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit, sed diem nonummy 
         nibh euismod tincidunt ut lacreet dolore magna aliguam erat volutpat. Ut wisis
         enim ad minim veniam, quis nostrud exerci tution ullamcorper suscipit lobortis 
         nisl ut aliquip ex ea commodo consequat.</p>
   </div>
<![endif]-->
<p>En hier gaat de gewone tekst weer verder.</p>
... is het dan niet ook goed?
Het div'je kan je met css bedienen met voor het IE6 stukje alle eigen opmaak die je maar wilt.
Het IE6-fragment kan je er desgewenst ook via een php-include in zetten, zonder speciale maatregelen.

Met vriendelijke groet,
CSSbhunter

[edit]Ha, dat was dus een kruispost met de vorige, maar ze vullen elkaar mooi aan. ;)[/edit]
 
Laatst bewerkt:
O, nog even terug naar af.
Je zegt in je eerste post:
  • werkt alleen in IE6 en FF:
    <!--[if IE 6]>
    <?php include("bestand.html"); ?>
    <![endif]-->
Die snap ik niet, zou alleen in IE6 iets op het scherm moeten zetten. Zeker weten dat er geen tikfoutje in zit?
Als die het wel doet ... is de cirkel heel erg mooi rond: dat was het begin, en hier komen we met z'n allen ook op uit. :)

En mocht die het niet doen (dus toch iets van binnen de if in Firefox laten zien), heb je dan een link naar een pagina waar we dit met eigen ogen kunnen zien?

Met vriendelijke groet,
CSShunter
 
Na heel wat "gedokter"

Het blijkt als het te include bestand met commentaar regels begint (niks geks), Chrome (5.0.375.125) het hele bestand toch inleest !,
en dus zichtbaar wordt.

In andere browsers ben ik dit nog niet tegengekomen !

Iedereen bedankt voor reactie.:)
 
Na heel wat "gedokter"

Het blijkt als het te include bestand met commentaar regels begint (niks geks), Chrome (5.0.375.125) het hele bestand toch inleest !,
en dus zichtbaar wordt.

In andere browsers ben ik dit nog niet tegengekomen !

Iedereen bedankt voor reactie.:)
Op zich niet zo heel raar. De inhoud van bestand.html zal altijd geladen worden, PHP weet immers niet wat voor browser hij gebruikt. De inhoud van bestand.html zal dus altijd tussen de <!--[if IE 6]> <![endif]--> staan. Wat je dan dus krijgt is
HTML:
<!--[if IE 6]>
<!-- commentaar -->
de rest van de HTML
<![endif]-->
Ik kan me goed voorstellen dat sommige browser in de war raken van commentaar binnen commentaar en denken dat de --> die het commentaar in bestand.html afsluit, ook het [if IE6] gedeelte afsluit.

EDIT: hah, de forumsoftware raakt er ook van in de war, mooie illustratie dus.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan