webForumDet fria alternativet

XHTML + JavaScript +CSS

HTML & CSSur HTML, XHTML & CSS

33 svar · 1 363 visningar · startad av ptr_lks · sida 2 av 2

Frågan, av ptr_lks

Hej, läste just att man inte rekomenderas att använda sk inline JavaScript och CSS i XHTML 1.0.. Stämmer detta? Och gäller det även transitional?

Läs frågan i sin helhet →
Medlem sedan juni 2005584 inlägg
#21

alltså ni zcorpan och J.N. är jättesnälla och duktiga...
men jag fattar inte hur jag kan inplementera detta till mina egan sidor (dels de befintliga och dels framtida)

<a href="sida.htm" onClick="cw('x.htm','y','menubar=yes,resizable=yes','600','450'); return false;">

vad står cw för?
Ovanstående kod skall jag ha em för varje popup eller hur? - Fast jag ändrar
på x och y?

Medlem sedan dec. 20042 245 inlägg
#22

Gör så här: Lägg skriptet från mitt förra inlägg i en fil som du döper till scripts.js, sedan lägger du in

webbebba skrev:

<script type="text/javascript" src="scripts.js"></script>

i HEAD, därefter använder du class="pop" på de länkar du vill ska poppa! :)

(Jag ändrade en grej i skriptet för att det funkade inte om man klickar på ett element inuti en länk.)

Medlem sedan juni 2005584 inlägg
#23

zcorpan skrev:

Gör så här: Lägg skriptet från mitt förra inlägg i en fil som du döper till scripts.js, sedan lägger du in i HEAD, därefter använder du class="pop" på de länkar du vill ska poppa! :)

(Jag ändrade en grej i skriptet för att det funkade inte om man klickar på ett element inuti en länk.)

  1. kan du förklara lite din skript? - vill helst inte använda mig av grejor jag inte förstår
  2. Är inte riktig säker på hur länkarna skall se ut...
    Säg att jag har 4 st: match1, match2... match4
Medlem sedan dec. 20042 245 inlägg
#24
  1. //kör pop-funktionen för alla klick man gör
    if (document.addEventListener) {
      document.addEventListener("click", pop, false);
    } else if (document.attachEvent) { //msie
      document.attachEvent("onclick", pop);
    }
    //pop-funktionen
    function pop(e) {
      //initiera variabeln elm
      var elm;
      //från vilket element kommer händelsen?
      if (e.target) {
        elm = e.target;
      } else if (e.srcElement) { //msie
        elm = e.srcElement;
      }
      //är elementet en länk? om inte, klättra uppåt i trädet
      while (elm.nodeName != "A") {
        elm = elm.parentNode;
      }
      //ska länken öppnas i en popup, och har den ett href-attribut?
      if (elm.className == "pop" && elm.href) {
        //öppna länken i en popup och följ inte länken i det gamla fönstret
        return !window.open(elm.href);
      }
      //annars fortsätt som vanligt
      return true;
    }
    
  2. <a href="match1.htm" class="pop">match1</a>
    <a href="match2.htm" class="pop">match2</a>
    ...
    <a href="match4.htm" class="pop">match4</a>
    

Hoppas det hjälper. :)

Medlem sedan juni 2005584 inlägg
#25

Tack för all hjälp, som vanligt är ni suveräna :birp :bire
Hoppas jag kan återkomma om jag inte får till det hela...
/ptr

PS: om jag vill googla så jag lär mig mera, vilka sökord rekomenderar du?

Medlem sedan dec. 20042 245 inlägg
#26

ptr_lks skrev:

PS: om jag vill googla så jag lär mig mera, vilka sökord rekomenderar du?

  • progressive enhancement
  • unobtrusive
  • dom
  • ecmascript
  • javascript 1.5
  • jscript

Lycka till! :bire

Medlem sedan apr. 20031 660 inlägg
#27

HEJ!

zcorpan skrev:

Det löste bara det ena "problemet", det finns fortfarande javascript inblandat i märkkoden.
...

Tänkte att det säkert inte var helt korrekt.
Du får gärna förklara för mig, varför mitt exempel inte fungerar. Vilken miljö (mobil, skärmläsare etc) som inte förstår detta.
Det validerar både för XHTML 1.0 Strict och Transitional, eller det är en sådan sak som inte kan valideras; man måste lösa dtd:n? (onclick ska skrivas så, annars blir det fel.)

Svarar på detta, även om du har funnit en lösning:

ptr_lks skrev:

...

<a href="sida.htm" onClick="cw('x.htm','y','menubar=yes,resizable=yes','600','450'); return false;">

vad står cw för?
Ovanstående kod skall jag ha en för varje popup eller hur? - Fast jag ändrar
på x och y?

Ja, en för varje. Ändra filnamn (x.htm), fönsternamn (y), och vad du vill ha för andra egenskaper på fönstret.
Du kan ha samma fönsternamn; då kommer allt i samma fönster, och funktionen visar det även om fönstret inte är aktivt.
Ej samma namn, du får flera fönster.

cw är funktionen i #15, men den kan heta vad som helst. (nästan)
Funktionen hette centerwindow från början, men det är långt, förkortade det.

Medlem sedan dec. 20042 245 inlägg
#28

J.N. skrev:

Du får gärna förklara för mig, varför mitt exempel inte fungerar. Vilken miljö (mobil, skärmläsare etc) som inte förstår detta.
Det validerar både för XHTML 1.0 Strict och Transitional, eller det är en sådan sak som inte kan valideras; man måste lösa dtd:n? (onclick ska skrivas så, annars blir det fel.)

Jag sade inte att det inte fungerade, jag sade bara att javascript fortfarande var inblandat i märkkoden. Jämför till exempel med hur man skriver CSS i en extern fil istället för att lägga in style="" i märkkoden.

Nu är det inte förbjudet att använda varken onclick="" eller style="", men jag trodde den här tråden gick ut på hur man kunde separera presentation och beteende från märkkoden. :)

(Om man ska vara riktigt petig så kanske "pop" inte är det bästa klassnamnet, då det beskriver beteendet snarare än varför det ska bete sig så. Till exempel om man vill att alla "hjälp"-länkar ska öppnas i en popup så är rel="help" bättre än class="pop", eftersom senare kanske vi kommer på att "hjälp"-länkar ska bete sig på ett annat vis, men de är fortfarande "hjälp"-länkar.)

Medlem sedan apr. 20031 660 inlägg
#29

HEJ!

zcorpan skrev:

Jag sade inte att det inte fungerade, jag sade bara att javascript fortfarande var inblandat i märkkoden. Jämför till exempel med hur man skriver CSS i en extern fil istället för att lägga in style="" i märkkoden.

Nu är det inte förbjudet att använda varken onclick="" eller style="", men jag trodde den här tråden gick ut på hur man kunde separera presentation och beteende från märkkoden. :)
...

Okej, det är endast för att separera dessa?
Jag undrade om det kunde krångla på någon plattform, vilken som, för att reda ut om det finns en annan anledning till uppdelningen.

Medlem sedan dec. 20042 245 inlägg
#30

Jag tror inte att mitt skript fungerar bättre än ditt, men det kan vara lite lättare att underhålla. Om man vill ändra beteendet så kan man ändra det i en fil för hela sajten istället för att redigera varje sida om varje sida innehåller skriptsnuttar utspritt här och var. Dessutom blir det mindre onödig kod för exempelvis sökmotorer som inte kör skriptet ändå. :)

Medlem sedan apr. 20031 660 inlägg
#31

HEJ!

Okej.

Ang sökmotorn, du menar att den slipper lägga tid på onödiga bytes, och inte att den hittar nästa sida?
Det är ju en vanlig href, till skillnad från ren javascript, utan htm-länk alltså.

Medlem sedan dec. 20042 245 inlägg
#32

Den slipper lägga tid på onödiga bytes, men den hittar nog nästa sida ändå.

Medlem sedan juni 2005584 inlägg
#33

zcorpan skrev:

Jag tror inte att mitt skript fungerar bättre än ditt, men det kan vara lite lättare att underhålla. Om man vill ändra beteendet så kan man ändra det i en fil för hela sajten istället för att redigera varje sida om varje sida innehåller skriptsnuttar utspritt här och var. Dessutom blir det mindre onödig kod för exempelvis sökmotorer som inte kör skriptet ändå. :)

det är ju alltid fördel med lättare underhållning...
Men hur kan man ändra i din kod om jag vill:

  1. popupen öppnas i ett förnster

  2. med följande egenksaper

    'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0, menubars=0, resizable=0, width=650, height=500 left = 100, top = 100');

  3. en länk för varje popup

Medlem sedan dec. 20042 245 inlägg
#34

Lägg till det som parametrar i open() precis som vanligt. :)

    return !window.open(elm.href, 'poppage', 'toolbars=0, scrollbars=1, location=0, statusbars=0,
menubars=0, resizable=0, width=650, height=500 left = 100, top = 100');
137 ms totalt · 3 externa anrop · v20260731065814-full.25f56b17
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)