Jag har en sträng i JavaScript som jag skulle vilja på något vis skriva in i en Accessdatabas, då helst med hjälp av ASP.
Går det att anropa en funktion skriven i ASP med hjälp av JavaScript!?
39 svar · 1 931 visningar · startad av Eclipse
Jag har en sträng i JavaScript som jag skulle vilja på något vis skriva in i en Accessdatabas, då helst med hjälp av ASP.
Går det att anropa en funktion skriven i ASP med hjälp av JavaScript!?
Du får anropa en sida som kör den funktionen/koden.
Hm, nu måste vi hålla isär saker och ting. :)
ASP körs på serversidan och JavaScript på klientsidan i webbläsaren.
Webbläsaren känner inte alls till din ASP-kod.
Du kan endast anropa dina ASP-sidor med HTTP GET/POST-anrop.
Det finns diverse sätt att göra detta på, förslagsvis Ajax med oändligt antal exempel.
Du har en poäng!
Det var ju du som skrev om document.referrer i den andra tråden! Jag är verkligen jättekass på javascript, men rätt bra på asp... så jag tänkte, om jag håller mig till asp så långt som möjligt.
Hur kan jag få in document.referrer i en databas!? Förslag?
Använd Request.ServerVariables("HTTP_REFERER").
Troxy skrev:
Hm, nu måste vi hålla isär saker och ting. :)
ASP körs på serversidan och JavaScript på klientsidan i webbläsaren.
Webbläsaren känner inte alls till din ASP-kod.
Du kan endast anropa dina ASP-sidor med HTTP GET/POST-anrop.
Det finns diverse sätt att göra detta på, förslagsvis Ajax med oändligt antal exempel.
Det var ju det jag sa. :q
Sen går det ju att skapa dummyelement med en src till ASP-filen i fråga. Visserligen ett GET-anrop. ;)
Fast är du helt säker på att du inte kan HEAD:a en ASP-sida?
Eclipse skrev:
Hur kan jag få in document.referrer i en databas!? Förslag?
Här är en fullösning som kanske funkar:
var x = new Image();
x.src = 'http://www.example.com/save.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');
colione skrev:
Det var ju det jag sa. :q
Ja, delvis. Men jag sa lite mer :P
Denna koden har jag klurat ut på egen hand och det fungerar inte.
function tracker{page) {
var x = new Image();
x.src = 'http://www.server.se/imgpwd/session.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');
}
Jag ropar på denna, som Google ropar på Analytics:
<script src="http://www.server.se/imgpwd/session.js" type="text/javascript">
</script>
<script type="text/javascript">
tracker();
</script>
Det är svårt för mig att se vad som inte stämmer.
Vad är det du egentligen vill uppnå med Javascriptet / ASP?
Eclipse skrev:
Denna koden har jag klurat ut på egen hand och det fungerar inte.
function tracker{page) { var x = new Image(); x.src = 'http://www.server.se/imgpwd/session.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : ''); }Det är svårt för mig att se vad som inte stämmer.
Jag undrar samma sak som FreddeMannen, men i alla fall så är det en typo, ändra { till en ( direkt efter tracker och för alldel ta bort variablen page om du ändå inte tänker använda den:
function tracker() {
var x = new Image();
x.src = 'http://www.server.se/imgpwd/session.asp?referrer=' + encodeURIComponent((document.referrer) ? document.referrer : '');
}
Tack för exempel!
Jag vill göra en sån sak som fungerar liknande som Google Analytics. Dvs, att man inkluderar en liten kodsnutt på alla sidor.
Jag har gjort lite experiment... men ännu inte riktigt fått till det. Jag vill gärna exekvera asp-sidan med hjälp av javascript, om det nu går!
Det är ingen bild utan ren text.
Nu vet jag inte hur din kod ser ut exakt i detta nu, men tidigare hade du gjort detta misstag:
function tracker[b][blue]{[/blue][/b]page) {
Dvs - krull där det inte ska vara krull.
mvh
Eclipse skrev:
Tack för exempel!
Jag vill göra en sån sak som fungerar liknande som Google Analytics. Dvs, att man inkluderar en liten kodsnutt på alla sidor.
Jag har gjort lite experiment... men ännu inte riktigt fått till det. Jag vill gärna exekvera asp-sidan med hjälp av javascript, om det nu går!
Det är ingen bild utan ren text.
Ett tankesätt kan ju vara att man:
<script type="text/javascript" src="filen.js"></script>
<script type="text/javascript">
tracker();
</script>
filen.js
function tracker() {
if (document.referrer) ref=escape(document.referrer)
var screen = [];
var screen[0] = aFunctionForScreenWidth();
var screen[1] = aFunctionForScreenHeight();
// osv...
// kanske man sedan kan spara ned det med någon get/post funktion (ajaxstil)
saveEntry(ref, screen);
}
Det är bara en tanke .. så en Js-fil som samlar in all info du vill åt, sedan kallar den på en funktion som anropar en asp, php, or what ever sida via ajax-typ-anrop.
Men vad som är "Best Practise", det vette tusan.
Så saveEntry skulle kunna bli som följande:
function saveEntry(var1, var2)
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
http = new XMLHttpRequest();
}
var q = "?var1="+var1+"&var2a="+var2[0]+"&var2b="+var2[1]+"";
var ok = "";
http.open("GET", "page.asp" + q);
http.onreadystatechange=function() {
if(http.readyState == 4) {
ok = http.responseText;
}
}
http.send(null);
return ok;
}
Kanske! :OO
escape() != bra för urler.
encodeURIComponent() == bra för urler.
Tack, tack! Nu ser min kod ut så här:
<script src="http://www.server.se/imgpwd/session.js" type="text/javascript">
</script>
<script type="text/javascript">
tracker();
</script>
function tracker() {
http.open("GET", "http://www.server.se/imgpwd/session.asp?referrer=" + encodeURIComponent((document.referrer) ? document.referrer : '') );
}
*****
OK, detta fungerar givetvis inte, det är därför jag postar.
Om det är möjligt att skippa all hantering av data i JavaScript skulle jag vara
glad, om inte annat för jag tycker det är svårt... Jag är duktigare på asp än på
javascript! :-)
Pop quiz: Vad är http för något? Du har glömt att kopiera merparten av Freddes kod (som iofs är trasig). Sen är det också värt att komma ihåg att script bara får göra XmlHttp-anrop mot samma server som sidan de ligger på kom ifrån.
Eller förresten... bara använd Image-hacket istället.
Tack! Som sagt, jag är ingen klippa på JavaScript...
Även när man ropar på en sida på samma server tror jag inte det fungerar att ropa på sidan.
Min kod nu skriver bara en post i databasen, koden är i skrivande stund inte relaterad till den information som eventuellt skickas.
Jag är alltså inte så duktig på JavaScript...
http://www.google-analytics.com/urchin.js
Jag har studerat denna filen utan att direkt lyckats förstå NÄR saker hamnar i databasen!
På slutet finns ett anrop, tredje funktionen bakifrån. Kan det vara nåt att satsa på!?
Hmm..
Den här tanken då:
// typ..
var img = new Image();
img.src = "http://www.domain.se/a-image-file.asp?var=something&var1=something&var3=something";
// mer kod.. som jag inte kommer på nu..
Alltså man gör en preload av bilderna så att säga, men man visar dem aldrig för
användaren... kan det funka???
// red.. det funkar..
prövade nyss med en denna kod:
<script type="text/javascript">
window.onload = function() {
var img = new Image();
img.src = "http://localhost/test.asp?test=tihi";
}
</script>