Functie uitvoeren mits JS is ingeschakeld

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • VR46
  • Registratie: Januari 2005
  • Laatst online: 08-09 12:51
Hallo,

Ik probeer een manier te bedenken waarop een JS functie aangeroepen kan worden wanneer er op een URL geklikt wordt, maar als javascript uitgeschakeld is, de URL gevolgd wordt, zodat de pagina niet useless is voor die paar mensen die JS uit hebben staan. Helaas ben ik vergeten of (en hoe) dit mogelijk zou zijn, en weet ik niet precies waar ik op zou moeten zoeken in Google.
Kan iemand mij hierbij op weg helpen? Als de probleemstelling te vaag is zal ik proberen deze helderder te formuleren!

Alvast bedankt!

Acties:
  • 0 Henk 'm!

Verwijderd

<noscript></noscript>?

Acties:
  • 0 Henk 'm!

Verwijderd

HTML:
1
2
3
4
5
6
7
8
<script type="text/javascript">
function myFunction() {
    alert("Ik return false dus we gaan niet naar google");
    return false;
}
</script>

<a href="http://google.com" onclick="return myFunction()">google</a>

Acties:
  • 0 Henk 'm!

  • Bozozo
  • Registratie: Januari 2005
  • Laatst online: 20-02 16:10

Bozozo

Your ad here?

HTML:
1
2
3
4
5
6
7
8
<script>
window.onload = init;
function init() {
  document.getElementById("bla").href = "weljavascript";
}
</script>

<a id="bla" href="geenjavascript">...</a>

TabCinema : NiftySplit


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

HTML:
1
2
3
4
5
6
7
8
9
10
<script type="text/javascript"> 
window.onload = function() {
  document.getElementById("linkje").onclick = function() {
    alert("Ik return false dus we gaan niet naar google"); 
    return false; 
  };
};
</script> 

<a id="linkje" href="http://google.com">google</a>

Zo zonder event-attributes. Want die zijn vies (verkapte eval, niet semantisch) ;)

日本!🎌


Acties:
  • 0 Henk 'm!

Verwijderd

_Thanatos_ schreef op maandag 08 juni 2009 @ 20:47:
Zo zonder event-attributes. Want die zijn vies (verkapte eval, niet semantisch) ;)
Oh, please.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19-09 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

_Thanatos_ schreef op maandag 08 juni 2009 @ 20:47:
Zo zonder event-attributes. Want die zijn vies (verkapte eval, niet semantisch) ;)
En je link werkt pas als alle content inclusief images geladen zijn. Jeeej -O-

[ Voor 3% gewijzigd door .oisyn op 08-06-2009 23:25 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • H004
  • Registratie: Maart 2006
  • Laatst online: 28-05 19:55
HTML:
1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript"> 
window.addEvent('domready', function(){
  $$('a').addEvent('click', function(e) {
    e.stop();
    doSomeThing();
  });
});
</script>

<a href="geen_javascript.html">link 1</a>
<a href="geen_javascript.html">link 2</a>
...

Werkt zodra DOM geladen is, geen verkapte evals, maar alleen wel een 36kb library... :+

@_Thanatos_: Niet prototype, maar Mootools, al zal het in prototype ongetwijfeld iets vergelijkbaars zijn

[ Voor 13% gewijzigd door H004 op 09-06-2009 12:47 ]


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Oh, please.
Wat?
En je link werkt pas als alle content inclusief images geladen zijn. Jeeej
Het is geen kant-en-klare oplossing. Je kunt het onload ook weglaten en het script eronder zetten. Ik verwacht zulke creativiteit van de TS dan ook wel, maar van jou eerlijk gezegd niet meer na zo'n opmerking :/

Een degelijk JS-framework zal een goeie crossbrowser DOMready event handler bieden, zoals:
JavaScript:
1
2
3
$(function() {
   //...
});

In jQuery dus, of zoals H004 demonstreert met prototype.

[ Voor 6% gewijzigd door _Thanatos_ op 09-06-2009 12:40 ]

日本!🎌


Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 19-09 21:24

.oisyn

Moderator Devschuur®

Demotivational Speaker

_Thanatos_ schreef op dinsdag 09 juni 2009 @ 12:39:
[...]

Wat?

[...]

Het is geen kant-en-klare oplossing. Je kunt het onload ook weglaten en het script eronder zetten. Ik verwacht zulke creativiteit van de TS dan ook wel, maar van jou eerlijk gezegd niet meer na zo'n opmerking :/
Het hele punt is dat de oplossing van Blues simpel en effectief is. Dan kun je wel heel puristisch gaan doen, maar jouw oplossingen heeft meer nadelen dan voordelen. Echter presenteer je je eigen oplossing als de heilige graal, want je noemt juist de voordelen, maar de nadelen laat je voor het gemak maar even achterwege. Het resultaat is dat je je vervolgens in moeilijke bochten moet gaan wringen om jouw oplossing toch goed toe te kunnen passen (door bijv. een cross-browser library te gebruiken).

[ Voor 27% gewijzigd door .oisyn op 09-06-2009 13:55 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 05-09 14:39

_Thanatos_

Ja, en kaal

Ik noemde ten eerste maar één voordeel van het alternatief dat ik oorspronkelijk aandroeg.

Ten tweede is het gebruik van een library alleen maar toe te juichen bij de meeste applicaties (ja, uitzonderingen daargelaten), omdat het gepruts voorkomt en (nog veel andere) mogelijkheden biedt die je dan niet zelf hoeft te schrijven. Ik noem dat geen moeilijke bochten, maar juist het einde van een slingerweg.

Dat Blues' oplossing effectief is, zal ik niet tegenspreken. Daar ben ik het roerend mee eens. Echter, als je toch nog wel meer javascript gaat schrijven, en de applicatie is wat groter van wat linkjes, loont het om het in een keer goed te bouwen, en op zo'n manier dat je de boel kunt hergebruiken.

[ Voor 27% gewijzigd door _Thanatos_ op 09-06-2009 17:15 ]

日本!🎌

Pagina: 1