: Retur til startside  : Retur til javaScript-startside   

SKÆRM -   OBJEKTER      

 : window
 : screen                  
 : navigator
 : navigator.plugins
 : navigator.mimeTypes
: Hvilken browser bruger jeg   
 

Objektet "screen"

Det handler om de ting på skærmen, der ikke ændres, selvom vinduet ændres: Højde og bredde (fraregnet hvad styresystemet optager) i pixels, og antal farver i bits (f.eks. 16 bits = 216 = 65536).
Objektet ejer ingen metoder eller event-handlere, kun variable, og de er alle ReadOnly.
variabelscreen.variabel


Udelades screen opstår der fejl, endskønt man skulle synes at det da kun kan være "denne" screen.
I onClik til denne knap står:
onClick="alert('availHeight='+availHeight)"

og man får derfor en fejlmelding:
 availHeight  
 availLeft  
 availTop  
 availWidth  
 colorDepth  
 height  
 pixelDepth 
 width
  
  
  
  
  
  
  
 
 
Når man laver midlertidige vinduer har man tit brug for at vide skærm-bredde og -højde, og med alle andre browsere end Opera er det hele skærmbredden (window.innerWidth og window.innerHeight), så for at finde ud af hvor meget plads man har kan man definere 2 variabler, her kaldet bred og hoej, hvor:
var Opera = (navigator.appName.indexOf("Opera") >= 0);   //  (se nedenfor)
var bred = (Opera) ? window.innerWidth  : screen.width;
var hoej = (Opera) ? window.innerHeight : screen.height;
Nye tider (1.april 2012):
Da jeg i dag prøvede at kigge på denne side, og siden med object windows
, med min favoritbrowser Firefox, så jeg til min glæde og overraskelse at der nu er forskel på window.innerWidth, window.outerWidth og screen.availWidth ... og tilsvarende for højden. Jeg må se at få lavet en test med alle mine mange forskellige browsere!
Og da jeg så prøvede med Internet Explorer virkede det ikke, ak! Her en løsningsmodel, metoden er for øvrigt generelt anvendelig når man har noget der bruger forskellige metoder/variable med forskellige browsere.
To forskellige metoder (funktioner), der virker lige godt:
function bredde1(){
   var facit = (window.innerWidth) ? window.innerWidth : screen.width;
   return facit;
}
           function bredde2(){
   return (window.innerWidth)||screen.width;
}
Testknapper:         

    navigator

Objektet fortæller, hvilket styresystem og browser der bruges. Det virker dog langtfra hver gang.
Det er nok en god idé at bruge
NavigatorID i stedet, men forvent ikke andet end ærgelser i lange baner, skidtet virker jo ikke.
Egenskab ell. metode
navigator.appCodeName=
navigator.appName=
navigator.appVersion=
navigator.userAgent=
navigator.language=
navigator.platform=
navigator.taintEnabled()=
navigator.javaEnabled() =
navigator.plugins.length=
navigator.mimeTypes.length=
 
 
appCodeName= Mozilla (browser's kælenavn?
              så har Netscape og I.Exp. samme kælenavn!
)
 
userAgent= appCodeName med versionsnummer
 
language= en (engelsk) mm i Netscape, men undefined med Internet Explorer
plugins og mimeTypes er to Array's af objekter, som igen har nogle egenskaber, som vist i tabellerne nedenfor. Der kan være stor forskel på antallet i Netscape og Internet Explorer (ofte 0 i I.E.)
 
FIDUS: Ofte har man brug for at vide om denne eller hin browser kender et bestemt objekt, f.eks objektet document.layers der forstås af Netscape og ikke andre browsere (?).
Spørg med   if (objektnavn) .. - og (objektnavn) udregnes til true hvis browseren kender objektet.
test :  if ( SSdocument.layers) udregnes af din browser til Eller brug: var kendt=true; try {...} catch(fejl) {kendt=false}

Og her tjekker jeg metode window.focus
test :  if ( window.focus) udregnes af din browser til
test :  if (window.focus) udregnes af din browser til true hvis objekt windows ejer metoden focus.
Men NB: window.focus() = true hvis window.focus() er true, window er i focus. Se selv:
window.focus() =    Window.focus() kunne jo ikke udregnes før denne side var færdigindlæst!


 Hvilken browser bruger jeg - eller rettere bruger den der læser min hjemmeside

Det er desværre ofte nødvendigt at skrive browser-specifik kode, fordi siden ser forskellig ud med forskellige browsere. Navigator-egenskaberne appName og userAgent er brugbare, men vær opmærksom på at hele familien bestående af Netscape, Chrome og Firefox og Safari sætter appName="Netscape".
Browsernavigator.appNamenavigator.userAgent
I.Explorer 8Microsoft Internet Explorer Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; GTB6)
Firefox 3.5.7NetscapeMozilla/5.0 (Windows; U; Windows NT 5.1; da; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7
Chrome 5.0Netscape Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.78 Safari/532.5
Netscape 4.7NetscapeMozilla/4.7 [en] (WinNT; I)
Opera 9.80OperaOpera/9.80 (Windows NT 5.1; U; da)
SafariNetscapeMozilla/5.0 (Windows; U; Windows NT 5.1; da-DK) AppleWebKit/531.22.7 (KHTML, like Gecko) Version/4.0.5 Safari/531.22.7
<script>
var IExplorer = (window.navigator.appName.indexOf("Internet Explorer")>=0);
var Firefox = (window.navigator.userAgent.indexOf("Firefox")>=0);
var Chrome = (window.navigator.userAgent.indexOf("Chrome")>=0);
var Safari = (window.navigator.userAgent.indexOf("Safari")>=0);
var Netscape = ((window.navigator.appName.indexOf("Netscape")>=0)&&(!Firefox)&&(!Chrome)&&(!Safari));
var Opera = (window.navigator.appName.indexOf("Opera")>=0);
</script>
med din browser, sætter dette script disse 6 variable til :
 
Og hvilken Windows version? Det véd jeg ikke rigtig hvordan man kan finde ud af, her et indledende forsøg:
<SCRIPT>var Win32=(navigator.platform=="Win32");
var andenvin=((!Win32)&&((pos("Win", navigator.platform)==0)));
if (Win32) document.write("Styresystem Windows 32 bit");
else if (andenvin) document.write("Styresystem Windows, men ikke 32 bit");
else document.write("Styresystem ikke Windows");
</SCRIPT>


NavigatorID

virker alt efter hvilken vej vinden blæser, men muligvis en smule bedre end Navigator.
Mosilla (år 2019) skriver følgemde nedslående meddelelser:  
NavigatorID
"Browser identification based on detecting the user agent string is unreliable and is not recommended" og
"The specification asks browsers to provide as little information via this field as possible. Never assume that the value of this property will stay the same in future versions of the same browser. Try not to use it at all, or only for current and past versions of a browser. New browsers may start using the same UA, or part of it, as an older browser: you really have no guarantee that the browser agent is indeed the one advertised by this property.
Also keep in mind that users of a browser can change the value of this field if they want (UA spoofing)."
NavigatorID.userAgent read-only property returns the user agent string for the current browser:
Jeg prøver at udregne NavigatorID.userAgent() her:
og NavigatorID.userAgent her:
Og med Firefox fik jeg to tomme strenge ud af det?

    plugins  ikke Internet Explorer


Syntax:  navigator.plugins[plugin-nr].egenskab  

    mimeTypes  ikke Internet Explorer


Syntax:  navigator.mimeTypes[mimeType-nr].egenskab