Toon posts:

Verschil in rendering ASP.net in Internet Explorer & Firefox

Pagina: 1
Acties:
  • 252 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hallo,

Ik probeer een Site te maken in ASP.net die geschikt moet zijn voor zowel Firefox als Internet Explorer.

Nu valt me op dat een Panel in Firefox vertaald wordt in een Table en in Internet Explorer als een Div.

Hierdoor kom ik in de problemen met mijn Stylesheets doordat ik bepaalde parameters niet kan gebruiken.

Klopt het dat IE en FF aps.net anders ontvangen van de Server (dus een andere rendering gebruiken)?

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 24-02 21:36
Jup, standaard zoekt ASP.NET uit wat voor browser (en javascript, html4 ondensteuning) er een pagina op komt halen. Op basis daarvan wordt er HTML gegenereerd. Maar dit proces moet vast en zeker te overrulen zijn, zodat jij als programmeur het zelf kan bepalen. (Maar ik zo snel ook niet hoe)

Verwijderd

Topicstarter
Sybr_E-N schreef op maandag 30 januari 2006 @ 16:12:
Jup, standaard zoekt ASP.NET uit wat voor browser (en javascript, html4 ondensteuning) er een pagina op komt halen. Op basis daarvan wordt er HTML gegenereerd. Maar dit proces moet vast en zeker te overrulen zijn, zodat jij als programmeur het zelf kan bepalen. (Maar ik zo snel ook niet hoe)
Oke want dat zou dan inderdaad mijn 2de vraag zijn hoe moet dat dan :-P :P

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Behulpzame links :)
http://weblogs.asp.net/mrupp/archive/2003/04/03/4789.aspx
http://www.codeproject.com/aspnet/browsercaps.asp

sleutelwoord: browsercaps
Ik heb er zelf geen ervaring mee ik gebruik gewoon een serverside DIV ipv een panel voor dit soort problemen.

[ Voor 36% gewijzigd door pjonk op 30-01-2006 17:15 ]

It’s nice to be important but it’s more important to be nice


  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
Ik gebruik wel op een aantal sites een aangepaste browsercaps en dat werkt prima. Bijna alle renderverschillen zijn hiermee opgelost. Je hebt natuurlijk wel nog de gebruikelijke onhebbelijkheden/verschillen tussen beide browsers.

Verwijderd

Topicstarter
pjonk schreef op maandag 30 januari 2006 @ 17:13:
Behulpzame links :)
http://weblogs.asp.net/mrupp/archive/2003/04/03/4789.aspx
http://www.codeproject.com/aspnet/browsercaps.asp

sleutelwoord: browsercaps
Ik heb er zelf geen ervaring mee ik gebruik gewoon een serverside DIV ipv een panel voor dit soort problemen.
Ik ga er eens goed na kijken, ja je moet effe weten dat het browsercaps zijn ;-) en ja oke moet natuurlijk wel nog de problemen verschillen in inpretatie van de browser kennen. Maar nu weet ik in ieder geval dat ze dezelfde code voorgeschoteld krijgen.

;)

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
Ik heb de linkjes even bekeken, en vind de geposte browsercaps nog vrij mager. Als je interesse hebt in een uitgebreidere (ook opera e.d.) wil ik die best posten/mailen. Of zelf even verder zoeken want mijn versie komt ook rechtstreeks van internet. Ik heb alleen geen idee meer waar.

Verwijderd

Topicstarter
cowgirl schreef op maandag 30 januari 2006 @ 23:18:
Ik heb de linkjes even bekeken, en vind de geposte browsercaps nog vrij mager. Als je interesse hebt in een uitgebreidere (ook opera e.d.) wil ik die best posten/mailen. Of zelf even verder zoeken want mijn versie komt ook rechtstreeks van internet. Ik heb alleen geen idee meer waar.
Ja als je die zou kunnen posten zou dat fijn zijn, ik heb nu erna gekeken maar snap het niet helemaal.


Maar moet ik zien als dat ik eigenlijk in mijn Web.config een stukje zet waarin je eigenlijk zegt hij dit is deze browser die het verzoek doet. en dat je daarmee de eigen browser overruled.

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
Als je in je machine.config kijkt, zie je daar ook al een browsercaps-sectie staan. Deze regelt welke browsers welke html-code geserveerd krijgt. Maar in deze browsercaps staan nog geen 'moderne' browsers zoals firefox en opera. Door deze zelf uit te breiden in de machine.config of de web.config vertel je eigenlijk aan asp.net dat die browsers ook upper-level browsers zijn.
Je kan het dus zowel in de machine.config zetten, dan geldt het gelijk voor alle websites op die computer, of in de web.config, dan geldt het alleen voor die specifieke website. Zelf doe ik het altijd in de web.config omdat je niet altijd toegang hebt tot de machine.config. Probeer een hostingbedrijf maar eens zover te krijgen dat ze de machine.config aanpassen....

Maar hier is in elk geval mijn aanvulling:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
    <browserCaps>
      <!-- GECKO Based Browsers (Netscape 6+, Mozilla/Firebird, ...) //-->
      <case match="^Mozilla/5\.0 \([^)]*\) (Gecko/[-\d]+)? (?'type'[^/\d]*)([\d]*)/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*)).*">
                    browser=Gecko
                    type=${type}
                    frames=true
                    tables=true
                    cookies=true
                    javascript=true
                    javaapplets=true
                    ecmascriptversion=1.5
                    w3cdomversion=1.0
                    css1=true
                    css2=true
                    xml=true
                    tagwriter=System.Web.UI.HtmlTextWriter
                    <case match="rv:(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'\w*))">
                        version=${version}
                        majorversion=${major}
                        minorversion=${minor}
                    <case match="^b" with="${letters}">
                        beta=true
                    </case></case></case>
      <!-- AppleWebKit Based Browsers (Safari...) //-->
      <case match="AppleWebKit/(?'version'(?'major'\d)(?'minor'\d+)(?'letters'\w*))">
                    browser=AppleWebKit
                    version=${version}
                    majorversion=${major}
                    minorversion=0.${minor}
                    frames=true
                    tables=true
                    cookies=true
                    javascript=true
                    javaapplets=true
                    ecmascriptversion=1.5
                    w3cdomversion=1.0
                    css1=true
                    css2=true
                    xml=true
                    tagwriter=System.Web.UI.HtmlTextWriter
                    <case match="AppleWebKit/(?'version'(?'major'\d)(?'minor'\d+)(?'letters'\w*))( \(KHTML, like Gecko\) )?(?'type'[^/\d]*)/.*$">
                        type=${type}
                    </case></case>
      <!-- Konqueror //-->
      <case match="Konqueror/(?'version'(?'major'\d+)(?'minor'\.\d+)(?'letters'));\w*(?'platform'[^\)]*)">
                    browser=Konqueror
                    version=${version}
                    majorversion=${major}
                    minorversion=${minor}
                    platform=${platform}
                    type=Konqueror
                    frames=true
                    tables=true
                    cookies=true
                    javascript=true
                    javaapplets=true
                    ecmascriptversion=1.5
                    w3cdomversion=1.0
                    css1=true
                    css2=true
                    xml=true
                    tagwriter=System.Web.UI.HtmlTextWriter
                </case>
    </browserCaps>

Verwijderd

Topicstarter
Dankje is gelukt! en werkt nu goed.

Ik heb allen ervoor gekozen om de web.config te gebruiken omdat ik externe hosting heb en hierdoor dus het kan regelen voor mijn pagina.

_/-\o_

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 11-02 11:25

Bosmonster

*zucht*

nofi, maar is andere content voorschotelen gebaseerd op browser niet heel erg gedateerd? Zo moeilijk is het toch niet om fatsoenlijke html te maken die werkt op alle browsers?

  • cowgirl
  • Registratie: November 2000
  • Laatst online: 18-12-2025
Het is niet geen andere content serveren. Als je source gaat vergelijken bij Firefox en IE moet deze nu hetzelfde zijn. ASP.NET serveert, afhankelijk van de browser-versie, HTML 3.2 of HTML 4.0. Het enige wat we nu aanpassen is dat ASP.NET weet dat er meer browsers dan alleen IE HTML 4.0 aankunnen.

Verwijderd

Topicstarter
Bosmonster schreef op donderdag 02 februari 2006 @ 11:21:
nofi, maar is andere content voorschotelen gebaseerd op browser niet heel erg gedateerd? Zo moeilijk is het toch niet om fatsoenlijke html te maken die werkt op alle browsers?
Das juist wat we hier proberen te doen een zelfde goede HTML code te krijgen. Het probleem was alleen dat bv een panel door de ASP.net server in Firefox wordt vertaald door een Table, terwijl als je hem benaderd met IE het een Div werd.

Hierdoor kon je dus niet een mooie site maken met Stylesheet etc omdat die dan attributen gebruikten die bv niet beschikbaar waren in een Div of in een Tabel.

Nu hebben we ervoor gezorgt dat dus zowel in Firefox als in IE een panel wordt vertaald in een DIV.

  • NoReason
  • Registratie: Mei 2003
  • Laatst online: 24-02 14:57
ik heb een vraag die goed bij de topicstart-vraag aansluit.

ik maak namelijk ook gebruik van een asp:panel, met de bedoeling om daarin dynamisch usercontrols te laden afhankelijk van de url-string.
maar... als ik het panel gewoon leeg maar of ik stop er een usercontrol in (waar er met het table object een tabel wordt opgebouwd), steeds staan er tussen mijn <div> tag's (omzetten van panel naar div) nog <span> tags... hierdoor komt mijn tabel tussen de <span> tags te staan en valideert dit niet.

bij het zoeken op dit forum/internet/... kom ik enkel het verschil in renderen tegen tussen IE en FF (div vs table) maar nergens problemen met die <span>... is er een manier om die weg te krijgen?

HTML:
1
<asp:Panel CLASS="div2" id="pnlHoofd" runat="server"></asp:Panel>

zou dus worden
HTML:
1
<div  CLASS="div2" id="pnlHoofd"><span></span></div>

It's time to kick ass and chew bubble-gum, and I'm all out of gum.


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Geen panel maar een placeholder gebruiken.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

@NoReason: die hoort daar ook niet te komen, heb zelf meerdere panels in gebruik maar geen van al deze renderd een span er tussen...


//offtopic
aan een <asp tag hoor je cssclass i.p.v. class mee te geven...

Of niet natuurlijk...


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

giMoz schreef op woensdag 22 maart 2006 @ 14:59:
@NoReason: die hoort daar ook niet te komen, heb zelf meerdere panels in gebruik maar geen van al deze renderd een span er tussen...


//offtopic
aan een <asp tag hoor je cssclass i.p.v. class mee te geven...
waarbij je dan het risico loopt dat hij niet altijd gerenderd wordt, afaik.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 22:57

TeeDee

CQB 241

gorgi_19 schreef op woensdag 22 maart 2006 @ 15:06:
[...]
waarbij je dan het risico loopt dat hij niet altijd gerenderd wordt, afaik.
Heb je daar een bron voor? Ik heb het persoonlijk nog nooit meegemaakt dat een panel _niet_ gerenderd wordt terwijl ik dat wel zou willen.

Heart..pumps blood.Has nothing to do with emotion! Bored


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

TeeDee schreef op woensdag 22 maart 2006 @ 15:35:
[...]

Heb je daar een bron voor? Ik heb het persoonlijk nog nooit meegemaakt dat een panel _niet_ gerenderd wordt terwijl ik dat wel zou willen.
Ik had het specifiek over de CSS. Het zou me niets verbazen namelijk als .Net gaat bekijken of een browser CSS ondersteunt; indien niet wordt er geen CssClass gerenderd. En aangezien het bestand lichtelijk outdated was (iig in ASP.Net 1.1) werden een hoop browsers als lowlevel beschouwd :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • giMoz
  • Registratie: Augustus 2002
  • Laatst online: 21-01 09:10

giMoz

iets met meester...

heb het zelf nog niet meegemaakt... dat die dan niet gerenderd zou worden...

en natuurlijk, hop hop, op naar .net2.0 :)

Of niet natuurlijk...

Pagina: 1