Avatar billede mancap Nybegynder
06. september 2000 - 12:27 Der er 13 kommentarer og
1 løsning

ActiveX Control -> Javascript/VBScript

Jeg skal bruge mit project på en internetside. Det er for så vidt let nok. Derudover skal ActiveX control\'en kommunikere med siden (altså bare med Javascript/VBScript funktioner). Jeg har adgang til et object kaldet Parent i min ActiveX, hvor jeg f.eks. kan sætte eller få returneret sidens titel, baggrundsfarve og så videre. MEN, jeg kan ikke kalde funktioner, eller <div>\'s jeg har indsat på siden, eller Parent.Parent objektet... og hvorfor så det..?!?
Det er mildest talt ret irriterende.

Problem kortet ned: Min ActiveX control skal lave et kald til en VBScript Sub som er på den side hvor Control\'en er loaded.
Hvordan gøres det?

- ManCap
Avatar billede nolle_k Nybegynder
06. september 2000 - 14:24 #1
Du er nok nødt til at kaste et event fra ActiveX kontrollen!!

Eventet defineres AX\'en som

Public Event CatchThis()

og kastes på følgende måde

RaiseEvent CatchThis()

På internetsiden laver du et VBScript, der ser ud som følger


<script Language=VBScript>
sub [NameOfAX]_CatchThis
  Do Stuff
end sub
</script>

Navnet definere du når du oprette AX\'en i <Object> Tag\'en!

//Nolle_K

Avatar billede mancap Nybegynder
06. september 2000 - 15:32 #2
Det ser sgu logisk nok ud, jeg kan desværre bare ikke få det til at virke :-(  Navnet er bare det navn der skrives i ID parametret i Object tagget, ikke?
Avatar billede nolle_k Nybegynder
06. september 2000 - 16:04 #3
Jo!!! Dette skal være i \" \" det vil sige

<Object ID = \"ThisAX\" bla bla>


Ellers vis mig noget kode!


//Nolle_K
Avatar billede mancap Nybegynder
06. september 2000 - 16:21 #4
således ser siden kode ud:
<SCRIPT Language=VBScript>
Sub MyOcx_CatchThis()
  MsgBox \"The sub CatchThis was called...\"
End Sub
</SCRIPT>
<object classid=\"clsid:ECEAA562-6DC6-41A8-A6C3-09B095EC0BDD\" id=\"MyOcx\" Name=\"MyOcx\">
</object>

Imens mit VB projekt indeholder dette:

Private Sub btnAbout_Click()
  RaiseEvent CatchThis
End Sub

Den skulle forsøge at raise den, når jeg klikker på about knappen. ...hmmm..Der kommer heller ikke nogen fejl, men jeg får ikke den Messagebox jeg be\'r om i eventen. :-(
Avatar billede mancap Nybegynder
06. september 2000 - 16:27 #5
Derudover har jeg selvfølgelig også husket:
Public Event CatchThis()
(denne skal også stå i mit class module right?)
Avatar billede nolle_k Nybegynder
07. september 2000 - 08:15 #6
Den stump kode jeg viser dig her virker fint på min computer!! Måske skal du udelade paranteserne efter eventet!!??

<OBJECT ID =\"WorkDayGrid\"
      CLASSID=\"clsid:D91E2D5D-7743-11D4-BEC9-0050DA920BCD\">
</OBJECT>

<script Language=VBScript>
sub WorkDayGrid_ReadyToBeInitialized
    msgBox \"TEST\"
    WorkDayGrid.User = Initials
    WorkDayGrid.Password = Password
end sub
</script>

Avatar billede mancap Nybegynder
07. september 2000 - 10:44 #7
Okay det var ret sort.... Jeg prøvede lige at stykke koden sammen inde i MS ActiveX control pad, smide den over i InterDev, og nu virker det perfekt hver gang. Meget steneren...måske trængte jeg bare til at reboote igår hehe...

Anyway tak for det :-)
Avatar billede nolle_k Nybegynder
07. september 2000 - 10:50 #8
Velbekomme du!!

Skulle det være en anden gang!

Jeg har selv haft store problemer med det samme problem! Mit problem lå bare 40 cm fra skærmen! Det vil sige mig selv! Jeg havde stavet Script med b som Scribt hvilket jo selvfølgelig ikke virker!


//Nolle_K
Avatar billede mancap Nybegynder
07. september 2000 - 10:54 #9
Hahahaha :-) Ja det er jo logisk nok, og det værste er at man stirrer sig totalt blind på det, og det falder slet ikke én ind at det er en stavefejl i VBScribt hehe :-)
Avatar billede nolle_k Nybegynder
07. september 2000 - 10:55 #10
Nope!!! *GG*

Avatar billede mancap Nybegynder
07. september 2000 - 14:22 #11
Nu vi er ved det...du ved vel ikke hvad man bruger i Javascript hvor man bruger \"Sub\" i VBScript, vel?
Så er det en anelse mere netscape friendly (selvom de vidst stadig ikke support\'er activex :)
Avatar billede nolle_k Nybegynder
07. september 2000 - 14:26 #12
Ikke lige på stående fod men jeg kan da slå det op for dig mod et mindre point tal!!!??


*GG*
Avatar billede nolle_k Nybegynder
07. september 2000 - 14:32 #13
For JavaScript functions, the format is:

function elementID_event(){

}

Avatar billede mancap Nybegynder
07. september 2000 - 14:47 #14
Aha..jeg havde overvejet \"function\", men tænkte nahh..den er til hvis jeg vil have returneret noget :-) hehe
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
Kurser inden for grundlæggende programmering

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