Toon posts:

[Javascript] Javascript werkt via button maar niet via HREF

Pagina: 1
Acties:
  • 1.636 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
[KIJK EVEN VERDEROP VOOR EEN ANDERE / BETERE OMSCHRIJVING VAN HET PROBLEEM]

Het volgende probleem doet zich voor:

* Een simpele HTML pagina bevat de function SayHello(). Deze function roept een alert aan met de tekst "Hello world".
* Wanneer deze functie aan wordt geroepen via de OnClick van een button werkt het prima en de messagebox verschijnt.
* Echter via een <a href=Javscript:SayHello();> dan gaat het mis. De browser denkt dat het een gewone URL is en probeert deze te openen (ipv uit te voeren).

Het probleem doet zich voor op een thinclient (XPembedded) en een andere pc (XP Pro) geeft geen enkel probleem.

Mijn vermoede is dat het een beveiligingsinstelling is, maar ik heb nog niets concreets kunnen vinden.

Wie-o-wie heeft er een idee ?

[ Voor 7% gewijzigd door Verwijderd op 12-08-2005 15:39 ]


  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10-2025
Je zou dit als volgt kunnen oplossen:
HTML:
1
<a href="#" onclick="SayHello()">Zeg hoi</a>

PS: HTML en javascript hoort in Webdesign en Graphics. :)

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 03-05 13:49

Janoz

Moderator Devschuur®

!litemod

Javascript en html horen niet in Programming & Webscripting maar in Webdesign & Graphics

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Aan de HREF kan ik zelf niets veranderen, het wordt gegenereerd door het .NET framework

Omdat het allemaal voortkomt uit een VB.Net / ASP.Net project denk ik dat "programming" de juiste afdeling is voor deze vraag.

[ Voor 4% gewijzigd door Verwijderd op 12-08-2005 13:01 ]


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Sowieso is de javascript: handler ranzig, maar als het niet anders kan :/

code:
1
<a href="javascript:alert('test')">test</a>


Moraal van 't verhaal: beter leren typen :? ;)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
BtM909 schreef op vrijdag 12 augustus 2005 @ 13:00:
Sowieso is de javascript: handler ranzig, maar als het niet anders kan :/

code:
1
<a href="javascript:alert('test')">test</a>


Moraal van 't verhaal: beter leren typen :? ;)
Zoals ik in de hier bovenstaande post al heb gemeld kan ik geen invloed uitoefenen op de HREF deze wordt gegenereerd en is OK.

oh ja, de code uit de eerste post heb ik uit mijn hoofd opgekrabbeld, het is puur ter illustratie.

[ Voor 16% gewijzigd door Verwijderd op 12-08-2005 13:03 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 23:39

momania

iPhone 30! Bam!

Verwijderd schreef op vrijdag 12 augustus 2005 @ 13:03:
[...]


Zoals ik in de hier bovenstaande post al heb gemeld kan ik geen invloed uitoefenen op de HREF deze wordt gegenereerd en is OK.

oh ja, de code uit de eerste post heb ik uit mijn hoofd opgekrabbeld, het is puur ter illustratie.
Het voorbeeld dat je geeft heeft anders geen quotes om de waarde en tevens staat javascript verkeerd gespeld.

Als dat zo gegenereerd wordt, kan jij er denk weinig aandoen ;)

Neem je whisky mee, is het te weinig... *zucht*


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Verwijderd schreef op vrijdag 12 augustus 2005 @ 13:03:
[...]


Zoals ik in de hier bovenstaande post al heb gemeld kan ik geen invloed uitoefenen op de HREF deze wordt gegenereerd en is OK.

oh ja, de code uit de eerste post heb ik uit mijn hoofd opgekrabbeld, het is puur ter illustratie.
Kijk eens naar m'n code en probeer het desnoods uit, dit werkt gewoon. Het probleem zit dan niet in je specifieke regel. :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

Topicstarter
Ok, nog even voor de duidelijkheid. De javascriptcode is goed. Het probleem is dat de browser de code niet uitvoert maar als locatie / URL ziet. Er is dus ergens een oorzaak die de browser belet om de javascript uit te voeren wanneer deze via een HREF wordt aangeroepen....

De specifieke javascripts zijn onderdeel van het .Net platform en worden vele duizenden applicaties gebruikt...

code:
1
<a id="LinkButtonLogin" class="LinkButtonSystemOption" href="javascript:{if (typeof(Page_ClientValidate) != 'function' ||  Page_ClientValidate()) __doPostBack('LinkButtonLogin','')} ">[login]</a>

[ Voor 22% gewijzigd door Verwijderd op 12-08-2005 13:14 ]


  • momania
  • Registratie: Mei 2000
  • Laatst online: 23:39

momania

iPhone 30! Bam!

Wat voor browser draait er dan op die embedded XP :?

Neem je whisky mee, is het te weinig... *zucht*


Verwijderd

Topicstarter
momania schreef op vrijdag 12 augustus 2005 @ 13:12:
Wat voor browser draait er dan op die embedded XP :?
IE6 SP2

Verwijderd

Topicstarter
Na een eerdere poging deze vraag hier neer te leggen ga ik het helemaal opnieuw proberen. Het draadje is onterecht een totaal verkeerde richting opgegaan.

Mijn project maakt deels gebruik van een webinterface. Voor de afhandeling van events (buttonclicks etc.) maakt .Net gebruik van javascript. Dit script wordt goed gegenereerd en mijn werkstation kan deze zonder fouten uitvoeren.

Mijn probleem doet zich wel voor op de uiteindelijke clients. Deze Windows XPembedded devices (een Itona van het merk VXL) heeft een eigenaardige afhandeling van de gegenereerde Javascripts. Na enige tests blijkt dat dit apparaat (en de daarop draaiende IE 6 SP2) de javascript wel uitvoert wanneer deze achter het OnClick event van een button worden geplaatst, maar indien deze wordt aangeroepen vanuit een HREF (href="javascript:Naam....") dan gaat het mis. De Internet explorer ziet deze aanroep van het script als een URL en in plaats dat het script wordt uitgevoerd wil de browser de locatie openen (dus als of javascript een domein is).

Houd er bij het antwoorden even rekening mee dat het Javascript goed is en dat deze het wel doet achter een OnClick event van de button.

Volgens mij is het een instelling binnen IE of een pollicy / security issue.

Iemand een idee?

Verwijderd

waarom gooi je het dan niet in je onclick handler? dat begrijp ik nu nogsteeds eigenlijk niet

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 12 augustus 2005 @ 15:41:
waarom gooi je het dan niet in je onclick handler? dat begrijp ik nu nogsteeds eigenlijk niet
Omdat het hele spul @runtime wordt gegenereerd door het framework..... Het is geen eigen keuze om het zo te doen.

  • Vinnienerd
  • Registratie: Juli 2000
  • Laatst online: 17:42
kun je niet als HREF:
code:
1
#" onclick="SayHello()
nemen? (als een soort SQL/code injectie)

Verwijderd

Topicstarter
Vinnienerd schreef op vrijdag 12 augustus 2005 @ 15:58:
kun je niet als HREF:
code:
1
#" onclick="SayHello()
nemen? (als een soort SQL/code injectie)
Dit is inmiddels ongeveer de 6e keer dat ik ga proberen duidelijk te maken dat ik GEEN invloed heb op de HTML / Javascript. Het .NET platform genereert deze en daar heb ik het mee te doen.

De HTML / het Javascript is 100% in orde. Het is Windows / de IE die de fout maakt....

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 03-05 13:49

Janoz

Moderator Devschuur®

!litemod

Misschien hoort het topic dan wel beter thuis in SA aangezien het een probleem van de browser is. Zoals je zelf al aangeeft is er geen programmeer oplossing voor dit probleem. Is er niet een manier om support op XPembedded (devices) te krijgen en het probleem daar neer te leggen?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Topicstarter
Janoz schreef op vrijdag 12 augustus 2005 @ 16:10:
Misschien hoort het topic dan wel beter thuis in SA aangezien het een probleem van de browser is. Zoals je zelf al aangeeft is er geen programmeer oplossing voor dit probleem. Is er niet een manier om support op XPembedded (devices) te krijgen en het probleem daar neer te leggen?
Natuurlijk hoop ik dat een andere .Net programmeur dit probleem eerder bij de hand heeft gehad. Hierdoor blijf ik van mening dat het topic bij .Net programmeurs moet liggen... Maar dat hij eventueel naar SA moet dat maakt me niet uit want ook hier verwacht ik niet zo 1-2-3 een oplossing.

Het feit dat het optreed op het XPe devices is volgens mij toeval. XPe is niet anders dan XP pro / home behalve dat je veel meer componenten kunt toevoegen / verwijderen. In mijn geval is de IE gelijk aan elke andere IE op XP.

Is er nu niet gewoon een security setting die het verbiedt om javascript via een HREF uit te voeren?

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
offtopic:
Het is mooi dat JavaScript in W&G moet, maar dit past zoals TS al meerdere malen heeft gezegd beter in P&W. Immers de JS wordt gegenereerd door VS.Net. De kans dat er iemand is die het probleem heeft gehad is in P&W groter dan W&G denk ik. De scheiding tussen clientside en serverside is op zich goed, maar soms moet je even iets verder kijken :)

Oops! Google Chrome could not find www.rijks%20museum.nl


  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

P_de_B schreef op vrijdag 12 augustus 2005 @ 16:22:
offtopic:
Het is mooi dat JavaScript in W&G moet, maar dit past zoals TS al meerdere malen heeft gezegd beter in P&W. Immers de JS wordt gegenereerd door VS.Net. De kans dat er iemand is die het probleem heeft gehad is in P&W groter dan W&G denk ik. De scheiding tussen clientside en serverside is op zich goed, maar soms moet je even iets verder kijken :)
Als de TS niet eens invloed heeft in het genereren van de code, dan kom je niet ver in [PW] hoor :)

TS mag trouwens ook iets meer moeite doen om z'n probleem duidelijker uit te leggen.

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Verwijderd

hey popi

Heb jij de java virtual machine geinstalleerd op deze embedded systemen? }:O

Verwijderd

Topicstarter
Verwijderd schreef op vrijdag 12 augustus 2005 @ 16:25:
hey popi

Heb jij de java virtual machine geinstalleerd op deze embedded systemen? }:O
Het script / java runtime is in orde...

[ Voor 28% gewijzigd door Verwijderd op 12-08-2005 16:30 ]


Verwijderd

Verwijderd schreef op vrijdag 12 augustus 2005 @ 16:29:
[...]


Het script / java runtime is in orde...
Zeker foutloos?? >:)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
BtM909 schreef op vrijdag 12 augustus 2005 @ 16:23:
[...]

Als de TS niet eens invloed heeft in het genereren van de code, dan kom je niet ver in [PW] hoor :)

TS mag trouwens ook iets meer moeite doen om z'n probleem duidelijker uit te leggen.
offtopic:
Let vooral op het gedeelte: de kans dat iemand in P&W het probleem ook heeft gehad is groter :)

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
BtM909 schreef op vrijdag 12 augustus 2005 @ 16:23:
[...]

Als de TS niet eens invloed heeft in het genereren van de code, dan kom je niet ver in [PW] hoor :)

TS mag trouwens ook iets meer moeite doen om z'n probleem duidelijker uit te leggen.
Volgens mij is mijn probleem in mijn post van 15:37 voldoende omschreven.

Verder snap ik niet wat je bedoelt met "Als de TS niet eens invloed heeft in het genereren ....". Dit heeft namelijk niets met mij te maken maar met .Net. Hieruit maak ik op dat je zelf niet eens weet waar je het over hebt.

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Wat is dat voor onzin? Als je iets ontwikkeld in .Net dan heb je ook gewoon invloed op de gegenereerde code.

Als de code niet van jou is, dan hoort dit topic niet hier maar is SA.

Huur mij in als freelance SEO consultant!


Verwijderd

Vind wel dat je iets ingetogener mag reageren popi, we proberen je met een probleem te helpen dat je zelf hebt veroorzaaakt...

Verwijderd

Topicstarter
CrashOne schreef op vrijdag 12 augustus 2005 @ 16:52:
Wat is dat voor onzin? Als je iets ontwikkeld in .Net dan heb je ook gewoon invloed op de gegenereerde code.

Als de code niet van jou is, dan hoort dit topic niet hier maar is SA.
Als je een beetje nadenkt over het onderhoud van software ga je geen standaard functionaliteit handmatig beinvloeden om een probleem met een client uit de weg te gaan.

Bovendien ben ik het roerend met je eens dat dit topic hier niet thuis hoort. Maar SA is ook zeker niet de beste plek.

  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Als je dit niet wilt, moeten al jou gebruikers dus of met een andere browser komen, beveiligings opties veranderen of weggenomen funcionaliteit voor lief nemen?

Oke.

Huur mij in als freelance SEO consultant!


Verwijderd

Topicstarter
CrashOne schreef op vrijdag 12 augustus 2005 @ 17:40:
Als je dit niet wilt, moeten al jou gebruikers dus of met een andere browser komen, beveiligings opties veranderen of weggenomen funcionaliteit voor lief nemen?

Oke.
Nee het gaat om een intranet applicatie waarvoor we 300 clients gaan bestellen met een custom image dit ik zelf vorm kan geven. Er is gewoon een instelling niet goed en dat is het.

Ik hoop dat we deze discussie nu kunnen stoppen en dat er nog iemand anders is die nog een inhoudelijke bijdrage heeft.

  • Skaah
  • Registratie: Juni 2001
  • Niet online
Hij opent hem in een nieuw venster? Als je in gewone IE een javascript:functie() in een nieuw venster opend, krijg je dezelfde ellende.

Verwijderd

Topicstarter
Skaah schreef op vrijdag 12 augustus 2005 @ 19:06:
Hij opent hem in een nieuw venster? Als je in gewone IE een javascript:functie() in een nieuw venster opend, krijg je dezelfde ellende.
Nee, hij blijft in het zelfde scherm
Pagina: 1