Avatar billede elprebsi Praktikant
30. maj 2001 - 15:56 Der er 9 kommentarer og
1 løsning

Læs CSS værdier i NS6

Jeg har en funktion, der kan læse stylesheet værdier, hvis man er i NS4:

function ReadNS(klasse, element)
{
  return eval(\"document.classes\" + klasse + \".all.\" + element);
}

Men det virker ikke i NS6. Er der én, der ved hvad jeg skal skrive i stedet for ?!

/El Prebsi
Avatar billede nikolajdu Nybegynder
30. maj 2001 - 16:05 #1
du skal ikke bruge all men getElemenById
Avatar billede nikolajdu Nybegynder
30. maj 2001 - 16:09 #2
getElementById
Avatar billede olebole Juniormester
30. maj 2001 - 16:18 #3
<ole>
Njaaahhh...ikke bare. Man har jo netop ikke i NS6 et \'all\'- eller \'layers\'-array. Man må derfor specificere på anden måde.
Prøv at smide en URL til siden, så er det lettere at hjælpe specifikt  :)
Hvad jeg gerne ville vide, er f.eks. hvordan du kalder (altså parametrene i kaldet), samt hvad dit element er - eller kan være.
/mvh
</bole>
Avatar billede elprebsi Praktikant
31. maj 2001 - 08:41 #4
Denneher virker i NS4, men ikke i NS6:

<HTML><HEAD><TITLE>Test læs CSS</TITLE>
<SCRIPT LANGUAGE=\"JavaScript\">
function ReadNS(klasse, element)
{ return eval(\"document.classes\" + klasse + \".all.\" + element); }
</SCRIPT>
</HEAD>
<STYLE>.grafBackground { color : #123456; }</STYLE>
<BODY>
Her læser vi attributten \"color\" i klassen \"grafBackground\"<br>
<script>document.write(ReadNS(\'.grafBackground\',\'color\'));</script>
</BODY></HTML>
Avatar billede olebole Juniormester
31. maj 2001 - 17:11 #5
Okay...  :o)
\'document.classes\' er ren NS-kode fra NS\'s gamle DOM...den med \'document.layers\'.
I den standardiserede DOM fra W3C eksisterer denne mulighed ikke, men hvis du har et element på siden med en klasse \'Ib\', kan du finde ud af denne klasse\'s (i virkeligheden dette specifikke element\'s) \'color\' på flg. måde:

    alert(document.getElementByClassName(\"Ib\").color);

Du må altså ikke have skiftet klasse, dynamisk på dette element, siden det blev kreeret.
/mvh
Avatar billede elprebsi Praktikant
01. juni 2001 - 09:27 #6
Tjah ...
Nu vil jeg jo nødig være utaknemmelig, men det er jo lige der vi har problemet.

Det eneste jeg i princippet har, er et <IMG> tag, der får billedet genereret af serveren. Jeg skal så bruge denne js funktion til at finde ud af de nuværende farver på stylesheetet, så billedet kommer til at passe ind i stilen.
Avatar billede elprebsi Praktikant
01. juni 2001 - 11:19 #7
Løsningen er næsten her:

function ReadNS(selector, attr)
{
  var sheetList = document.styleSheets;
  var ruleList;
  var i, j;

  /* look through stylesheets in reverse order that
    they appear in the document */
  for (i=sheetList.length-1; i >= 0; i--)
  {
    ruleList = sheetList[i].cssRules;
    for (j=0; j<ruleList.length; j++)
    {
      if (ruleList[j].type == CSSRule.STYLE_RULE &&
ruleList[j].selectorText == selector)
      {
        return eval(\"ruleList[j].style.\"+attr);
      } 
    }
  }
  return \"damn\";
}

Den virker i Mozilla 0.9, men ikke i min version af Nestcape 6.0. Her er det .selectorText attributten der er blank.
Avatar billede olebole Juniormester
03. juni 2001 - 19:50 #8
elprebsi >> Din kommentar (01/06 2001 09:27:51) fatter jeg simpelthen ikke...?!?!
Hvordan vil du have et billede til at passe ind i stilen med en tekstfarve - på en tekst som du oveni købet - tilsyneladende - ikke har noget af på siden...?!?!?!
Jeg fatter zip...hvad er det præcist, du vil lave?
/mvh
Avatar billede elprebsi Praktikant
05. juni 2001 - 10:22 #9
OleBole>>
Forestil dig et site - stylet med CSS - i forskellige blå nuancer.
På nogle af siderne er der tabeller med rammer (i en bestemt farve). På andre sider er der grafer med rammer (der gerne skulle have samme farve).

På siderne med grafer behøver der ikke nødvendigvis også at være tabeller. Så det er ikke sikkert at jeg har nogle elementer at stjæle style\'n fra. Det er derfor jeg gerne ville kunne læse stylen direkte fra stylesheetet.

P.S. Graferne bliver lavet af en servlet (<IMG SRC=\'\\SERVLET\\MinGraf...), så jeg havde forestillet mig at smække de relevante styles på som parametre til servlet kaldet.

Og det er det jeg har fået til at virke i Mozilla 0.9. Men det ser ikke for godt ud med Netscape 6.0 (og vist heller ikke 6.01).
Avatar billede elprebsi Praktikant
29. juni 2001 - 14:03 #10
Det ser ud til at virke i Netscape 6.1 (jeg har prøvet prerelease ...
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