Avatar billede tuctoh Nybegynder
29. juni 2003 - 11:26 Der er 21 kommentarer og
1 løsning

Understøttelse af iViews

Hej,

Jeg har en form for textbox, som er et iview. Det vil sige at det er stort set det samme som word; du kan indsætte og se billeder direkte etc...

<iframe id="iView" style="width: 422px; height:205px"></iframe>
samt
iView.document.execCommand('underline', false, null);


etc...



Nu lyder mit spørgsmål så - hvordan tjekker jeg om browseren rent faktisk understøtter dette? Jeg troede at jeg bare kunne tjekke efter IE5.5+ vha følgende:

<script language="javascript">
            var variablen
            IE = navigator.appVersion.indexOf('MSIE');
if (IE>-1 && navigator.appVersion.substring(IE+5)>'5.5'){variablen=1}else{variablen=0}
document.forms.members.ieversion.value=variablen
            </script>


det virker bare ikke godt nok! Enkelte brugere klarer denne test, men kan alligevel ikke skrive i feltet!



Jeg håber i kan hjælpe mig med at finde en løsning på mit problem, så jeg kan tjekke om brugeren understøtter iviews.
Avatar billede grunken Nybegynder
29. juni 2003 - 12:48 #1
Sjovt :)

jeg ledte efter det samme igår, den her side gav mig mange hints :)

http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html
Avatar billede grunken Nybegynder
29. juni 2003 - 13:13 #2
altså frit kopieret :)


<script language="javascript" type="text/javascript">

    var agt=navigator.userAgent.toLowerCase();
    var is_major = parseInt(navigator.appVersion);

    var is_ie    = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
    var is_ie3    = (is_ie && (is_major < 4));
    var is_ie4    = (is_ie && (is_major == 4) && (agt.indexOf("msie 4")!=-1) );
    var is_ie4up  = (is_ie && (is_major >= 4));
    var is_ie5    = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) );
    var is_ie5_5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5up  = (is_ie && !is_ie3 && !is_ie4);
    var is_ie5_5up =(is_ie && !is_ie3 && !is_ie4 && !is_ie5);
    var is_ie6    = (is_ie && (is_major == 4) && (agt.indexOf("msie 6.")!=-1) );
    var is_ie6up  = (is_ie && !is_ie3 && !is_ie4 && !is_ie5 && !is_ie5_5);

    if (is_ie5up){
    alert('du bruger en browser højere end ie 5.5')}
    else{
    alert('du bruger IKKE en browser højere end ie 5.5')}

</script>
Avatar billede grunken Nybegynder
29. juni 2003 - 13:15 #3
if (is_ie5_5 || is_ie5_5up){
      alert('du bruger en browser højere end ie 5.5')}
    else{
      alert('du bruger IKKE en browser højere end ie 5.5')}

snarere
Avatar billede tuctoh Nybegynder
29. juni 2003 - 13:32 #4
hmmm... men er det en sikkerhed for at iviews kan bruges?
Jeg har jo som vist allerede et script saom tjekker for det, men enkelte brugere har probs med det alligevel :s
Avatar billede grunken Nybegynder
29. juni 2003 - 14:02 #5
Det første eks. du havde lavet virkede heller ikke her, du blandede tal og strings sammen i en bolledej :)

Det eksempel jeg gav dig, kan simpelthen ikke fejle, det checker FOR alle versioner og retunerer ud fra det...!

men en lille rettelse af din kan osse virke :)

<script language="javascript" type="text/javascript">
  var variablen
  var IE = navigator.appVersion.indexOf('MSIE');

  if (IE!=-1 && Math.abs(navigator.appVersion.substring(IE+5,IE+8))>=Math.abs(5.5)){variablen=1;}else{variablen=0}
  document.forms.members.ieversion.value=variablen
</script>

så nu er der to muligheder ;D

og jeg vil æde min hat på at ingen af dem fejler (godt, jeg er sulten *G*)
Avatar billede tuctoh Nybegynder
29. juni 2003 - 14:06 #6
ahhh...
Jeg fik det ovennævnte eksempel fra:
http://www.eksperten.dk/spm/361798

derfor troede jeg det var rigtigt.

Men giv mig lige et stykke tid til at se om der kommer flere problemer :)

tak for hjælpen indtil nu... og smid lige et svar
Avatar billede grunken Nybegynder
29. juni 2003 - 14:12 #7
okay, så finder jeg hatten frem imens :)
Avatar billede roenving Novice
29. juni 2003 - 14:25 #8
Det vil jeg gerne lære !-)

Er det nogle browsere som spoofer IE 6 eller ?-)
Avatar billede grunken Nybegynder
29. juni 2003 - 14:42 #9
roenving>

ie6 var i høj grad problemet :), ikke at jeg har styr på navigator tingene!

men hvordan er det lige at man ser om en string er større end en anden string, det er så mit ?

men udover det, linket i mit første indlæg er yderst lærerigt :), hvis man vil checke for en specifik browser... og udover det kan man læse lidt mere om navigator funktionerne her :)

http://www.mozilla.org/docs/dom/domref/dom_window_ref36.html
Avatar billede roenving Novice
30. juni 2003 - 01:34 #10
Hov, har jeg helt glemt at gøre opmærksom på at det altid er bedre at sniffe metoder/funktioner end browsere ...

-- næeh, det var vist ikke det, som var problemet (hotcut!-)

>>grunken

Streng-check laves via ascii-værdier, derfor tog jeg det simple udgangspunkt i ovennævnte reference -- 5.etellerandet mere end 5 (heriblandt 6.noget) vil blive evalueret som større
Avatar billede grunken Nybegynder
30. juni 2003 - 14:09 #11
>roenving finder altid nye løsninger frem(så lærer vi mere ;)), og som han siger er det heller ikke dårligt at checke på functioner :), et eks. kunne se sådan her ud:

<script language="javascript" type="text/javascript">
if(document.execCommand!=undefined){alert('understøttet');}else{alert('ikke understøttet');}
</script>
Avatar billede tuctoh Nybegynder
30. juni 2003 - 16:46 #12
vil dette være en bedre metode tror du grunken?
Umidelbart tjekker den jo helt præcist det jeg leder efter... men hvis forskellen er ens, så...!?
Avatar billede roenving Novice
30. juni 2003 - 16:49 #13
Jo mere præcist du checker, jo mindre bliver dine potentielle problemer ...
Avatar billede tuctoh Nybegynder
30. juni 2003 - 16:53 #14
ok, så prøver jeg med:

  <script language="javascript" type="text/javascript">
  var variablen
  if(document.execCommand!=undefined){variablen=1;}else{variablen=0;}
  document.forms.members.ieversion.value=variablen
  </script>


endnu engang tak :)
Avatar billede tuctoh Nybegynder
02. juli 2003 - 15:41 #15
nu har jeg så prøvet med den... selv i netscape bliver variablen 1!
if(document.execCommand!=undefined){variablen=1;}else{variablen=0;}
giver 1 i alle browsere - om de understøtter det eller ej.

Hvad skal jeg SÅ bruge?
Avatar billede roenving Novice
02. juli 2003 - 16:12 #16
if(document.execCommand)
Avatar billede tuctoh Nybegynder
02. juli 2003 - 16:17 #17
nop, giver samme problem :s

det ser dog ud til at det gider virke med

<script language="javascript" type="text/javascript">
  var variablen
  var IE = navigator.appVersion.indexOf('MSIE');

  if (IE!=-1 && Math.abs(navigator.appVersion.substring(IE+5,IE+8))>=Math.abs(5.5)){variablen=1;}else{variablen=0}
  document.forms.members.ieversion.value=variablen
</script>
Avatar billede roenving Novice
02. juli 2003 - 16:36 #18
de'r'zq underligt ...
Avatar billede tuctoh Nybegynder
02. juli 2003 - 16:39 #19
ja... men hvis du tester selv vil du nok se at selv netscape returnerer 1 ved det funktionskal... document.execCommand er åbenbart noget de også har i en anden form!? Den virker bare ikke på den iview,.
Avatar billede roenving Novice
02. juli 2003 - 16:54 #20
-- de har det ikke, men man kan jo forestille sig et par grunde eller 3 til at de svarer korrekt på det:

- at de har det reserveret til fremtidigt brug
- at de helst ikke vil falde igennem hos brugere, som forventer at den bare kan
- jeg har ikke kigget deres udviklere (eller w3c's endsige ECMA's) over skuldrene, så måske er der noget i pipelinen ?-)
Avatar billede tuctoh Nybegynder
02. juli 2003 - 17:36 #21
man kan aldrig vide :p
nu håber jeg bare at tjekke for IE5.5+ er nok... ellers bliver jeg nok nødt til på en eller anden måde at lade dem vælge hvade de vil bruge :(
Avatar billede roenving Novice
02. juli 2003 - 17:43 #22
Jeps ;oD
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester