Avatar billede wildthing Nybegynder
19. november 2008 - 13:44 Der er 8 kommentarer og
1 løsning

ASP.NET sammen med vbscript og activex

Hej eksperter,
Jeg har en codebehind hvorfra jeg vha VBSscript fyrer et activeX kald afsted til et andet program. I gamle ASP lagde jeg det i <HEAD> men har forstået at man i ASP.NET bruger denne:

            If (Not ClientScript.IsStartupScriptRegistered("clientScript")) Then
                ClientScript.RegisterClientScriptBlock(Me.GetType(), "clientScript", strScript)
            End If

hvir strscript udgør min vbscript.
Det virker også fremragende MEN...
hvis man ex. klikker videre på sitet og derefter bruger "back" knappen så afvikles vbscriptet igen. Den kører ikke codebehind igennem, for så kunne jeg godt finde på noget at gøre. Nej clientscrptet køres altså igen... til stor skade.

En god ide vil virkelig blive værdsat, og jeg vil straks afsende en rød ferrari til vedkommende:)

/wildthing
Avatar billede softspot Forsker
19. november 2008 - 13:53 #1
Kan du ikke bare lægge en scriptreference ind i stedet for selve scriptet, som kalder en aspx-side på serveren. Denne aspx-side skal så tage stilling til om der skal returneres et script eller om der bare skal returneres et tomt script. Det kan evt. være du skal sætte udløbsdatoen på scriptet til noget i fortiden, så siden altid vil hente det fra serveren igen (hvis ellers det fungerer)...
Avatar billede wildthing Nybegynder
19. november 2008 - 14:26 #2
Hej softspot
ved ikke om jeg helt er med, men hvis jeg fra codebehind kalder en anden x.aspx side som laver script (og fyrer det af), ja så vil jeg jo ende min x.aspx side. herfra skal jeg jo så lave en knap der klikker mig tilbage til min oprindelige side???
hvis jeg så bruger browserens "back" pil ja så kommer jeg jo bare tilbage til x.aspx siden og vupti fyres scriptet af igen.

det med udløb af scriptet lød måske interessant. hvordan gør man det. det ville være fint om scriptet kun fandtes i 2 sekunder og så var glemt:)
Avatar billede softspot Forsker
19. november 2008 - 14:35 #3
Det jeg mener er, at du skal indsætte en scriptblok som ser således ud:

<script type="text/javascript" src="mitvbscript.aspx"></script>

I den aspx-fil som hedder "mitvbscript.aspx" ligger der så noget kode (codebehind), der kan afgøre om den aktuelle side skal have det rigtige vbscript (det som du pt. sender til klienten) sendt tilbage eller bare et tomt svar.

Der er altså i bund og grund bare tale om at du fjerner scriptet fra klienten (og dermed browser-cachen) og rykker det over på serveren, hvor du bedre kan styre hvilket script siden rent faktisk skal have at se. Mht. styring af det dynamiske scripts udløb ("expiration"), så vil jeg mene at du kan smide nogle headers efter dit script i aspx-filen mitvbscript.aspx, som fortæller browseren at den skal hente et nyt fra serveren når siden i øvrigt hentes i browser-cachen.
Avatar billede softspot Forsker
19. november 2008 - 14:36 #4
Ups! Det er jo nok type="text/vbscript" i stedet for type="text/javascript"... sorry!
Avatar billede wildthing Nybegynder
19. november 2008 - 14:52 #5
det skal jeg lige prøve at fedte lidt med. Jeg har prøvet (havde håbet på) at jeg sidst i mit vbscript blot kunne kalde min side igen med
response.redirect("http://server/minforside.aspx"), men den ignorere denne linie. ikke at scriptet fejler?!? den redirecter bare ikke.

burde den ikke det?
Avatar billede softspot Forsker
19. november 2008 - 15:12 #6
Response.Redirect er umiddelbart en server-ting, så hvis du mener at du har lagt den i dit klient-script, så vil den nok ikke fungere... om den skal give en fejl... tjoh, det ville jeg forvente, men jeg har ikke rigtig brugt vbs på klienten, så hvad den gør og ikke gør, ved jeg faktisk ikke.

Dog vil jeg mene, at selvom om den response.redirect fungerede, så ville du ikke løse problemet, da din side stadig ville ligge i browserens cache. Hvis du endelig skulle noget i det retning, skulle du finde en VBScript-udgave af dette java script:

window.location.replace("minforside.aspx")

(hvis altså det ikke bare fungerer i VBS uden paranteserne...?)
Avatar billede wildthing Nybegynder
20. november 2008 - 13:14 #7
softspot>
Virker perfekt med at afslutte min vbscript med
window.location.replace("minforside.aspx")?!?
ikke noget med at skulle have ekstra aspx sider.
jeg havde netop søgt efter dette, men havde ikke fundet noget til vbscript. var ikke klar over at javascript ville kunne anvendes i vbscript.
Send et svar og ferrarien er på vej til dig.
Avatar billede softspot Forsker
20. november 2008 - 13:39 #8
Velbekomme (jeg glæder mig til ferrarien!) :-)
Avatar billede softspot Forsker
21. november 2008 - 09:02 #9
Tak for point :)
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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