Avatar billede txk Nybegynder
26. marts 2002 - 00:41 Der er 37 kommentarer

include med javascript

Jeg ønsker at include en asp fil med java script
normalt:
<!-- #include file="filnavn.asp" -->
java script:
<script src="filnavn.asp"></script>

for at det skal virke skal jeg sætte :
document.write("<html>")
rundt om det hele ikk ?

Skal det bare foran og bagpå alle linjer ?


Jeg er helt ny med java script hvad gør jeg galt ?
Avatar billede medions Nybegynder
26. marts 2002 - 00:44 #1
Mener man kan skrive:
<script>
  document.write("<!-- #include file="filename.asp" -->");
</script>

//>Rune
Avatar billede cms Nybegynder
26. marts 2002 - 00:44 #2
Hvordan include en asp-fil med javascript? Er det JavaScript der skal afvikles på klienten altså i browseren altså DHTML, eller er det JScript, altså ASP-javascript der skal afvikles? Hvad er det du vil lave?
Avatar billede medions Nybegynder
26. marts 2002 - 00:45 #3
-Du kan ikke inkludere en asp fil med JavaScript i sig selv...!
//>Rune
Avatar billede txk Nybegynder
26. marts 2002 - 00:45 #4
hhmmm....

virker det så også hvis ens sider ikke understøtter asp
Avatar billede medions Nybegynder
26. marts 2002 - 00:45 #5
cms> Han skriver i tags, så det må være DHTML!

//>Rune
Avatar billede medions Nybegynder
26. marts 2002 - 00:46 #6
nope!
//>Rune
Avatar billede cms Nybegynder
26. marts 2002 - 00:52 #7
Jeg mente da ellers man godt kunne inkludere JScript i asp-filer med tags...
Avatar billede txk Nybegynder
26. marts 2002 - 00:53 #8
Der er lidt forskellige meninger her inde kan jeg se...

sagen er den... Jeg har et nyhedssystem inde på min hjemme side...

Jeg har lavet en asp fil der viser de sidste 5 nyheder..
og det er så meningen at andre skal kunne sætte den ind på deres egen side..

Da det ikke er alle der har asp understøttet ville jeg bruge javascript svar på "include"

men kan ikke få det til at lykkes..
det kan lade sig gøre ikk ?
Avatar billede jakoba Nybegynder
26. marts 2002 - 00:58 #9
den der html kommando:

<script type='text/javascript' src="filnavn.js"></script>

er specialdesignet til at inkludere javascript kode i et dokument.
Og der må ikke stå nogetsomhelst i den fil der ikke er lovlig javascript kode.
Så den kan slet ikke bruges som en generel 'inkluder en fil her' kommando.

har du prøvet blot at skrive:
<!-- #include virtual="filename.asp" -->

det er en generel 'inlkuder den fil her'. Men der findes desværre servere hvor den ikke virker.
og de fleste servere kræver filen hedder .shtml til extension før det virker, men prøv.

mvh JakobA
Avatar billede medions Nybegynder
26. marts 2002 - 00:58 #10
cms> Du bruger ikke tags i ASP med mindre det er til validering!

txk> Så ville det være bedere med en CGI løsning!
//>Rune
Avatar billede txk Nybegynder
26. marts 2002 - 00:59 #11
hvordan ?
Avatar billede jakoba Nybegynder
26. marts 2002 - 01:00 #12
Ups.
det er den fil kommandoen står i der ofte skal hedde .shtml til extension.  den fil der inkluderes kan hedde hvad pokker den vil.
Avatar billede medions Nybegynder
26. marts 2002 - 01:05 #13
txk> Opret et spm i kategorien CGI (jeg kan ikke hjælpe dig da jeg ik' kan CGI) - ved det kan lade sig gøre der...!

//>Rune
Avatar billede txk Nybegynder
26. marts 2002 - 11:02 #14
men jeg ved det kan lade sig gøre med java script... se fx

http://www.fbold.dk/doller/fbold_nyhedslink_layout.asp
Avatar billede Slettet bruger
26. marts 2002 - 12:24 #15
Du kan som sagt godt inkludere en fil med javascript, men det kræver, at du skriver din ASP-fil en del om. Og hvis den fil indholder andet en html (altså noget server-side scripting), så kan du godt glemme det!

For at inkludere en fil skal du gøre dette:

Step 1:

I "filnavn.js" skal du skrive dette:

html = "Første linje" +
"Linje 2" +
"Linje 3" +
"Sidste linje";

document.write(html);

Du kan selvfølgelig godt skrive HTML, men hvis du vil skrive gåseøjne skal du huske at sætte et backslash \ foran dem, fx:
<table background=\"sky.gif\">
Læg mærke til, at første linje skal starte med html = "blabla" + og alle linjer derefter skal have et plus efter sig, bortset fra den sidste.
document.write-linjen skal ikke ændres.

Step 2:

Få alle til at indsætte dette på deres side, dér hvor nyhederne skal fremkomme:

<script type="text/javascript" src="http://www.ditdomaene.dk/nyheder/filnavn.js"></script>
Avatar billede ras2000 Nybegynder
26. marts 2002 - 13:23 #16
Du kan også skrive dine asp nyheder til en js fil, lav den i rigtig javascript kode:
nyhed1 = "her står nyheden";
nyhed2 = "her står nyheden";
nyhed3 = "her står nyheden";
nyhed4 = "her står nyheden";
nyhed5 = "her står nyheden";
Avatar billede Slettet bruger
26. marts 2002 - 18:14 #17
Det er det, jeg har forklaret.
Avatar billede txk Nybegynder
26. marts 2002 - 22:37 #18
Er det slet ikke muligt at hente fra en database ?
og
er det muligt at skrive til en  .js  fil ?
Avatar billede ras2000 Nybegynder
27. marts 2002 - 10:54 #19
Undskyld phoenixv, jeg havde kun lige skimmet.
Avatar billede txk Nybegynder
27. marts 2002 - 11:01 #20
Jeg forstår stadig ikke...
jeg kan ikke få det til at virke hvad kan jeg have gjort galt  ?
Avatar billede Slettet bruger
27. marts 2002 - 11:05 #21
txk>> Jeg er kun på mit andet år i den videregående tankelæser-uddannelse, så det står ikke helt klart... Giv gerne en URL! :)
Avatar billede jakoba Nybegynder
27. marts 2002 - 11:05 #22
når du udfører dit asp script genererer det en fil med bogstaver i der sendes til brugerens browser.

<%
response.write( "dette er det brugerens browser ser" )
%>

din asp kode kan være hvadsomhelst, og den kan sagtens hente data fra en database for at finde ud af hvad den skal sende videre i den fil der genereres.

men i dette tilfælde (hvor du vil inkludere med <script kommandoen i html) skal du sørger for at alt det dit asp skript sendet ril browseren er gyldig javascript kode.

Det kan så gøres som phoenixv foreslår ved at du skriver linier som

document.write( "det der skal stå på siden" );

med dit asp script.

mvh JakobA
Avatar billede Slettet bruger
27. marts 2002 - 11:06 #23
Kun server-side scripting kan hente resultater fra en database, dvs. JavaScript kan ikke!
Du kan ikke skrive til en JS-fil, men du kan godt skrive en, altså oprette et ASCII-dokument med endelsen .js!
Avatar billede jakoba Nybegynder
27. marts 2002 - 11:14 #24
Hvis fx din nyhed er:
<h1>Mand bider hund i vovsebølle</hr>
<p>Her imorges blev det bare formeget for postbud peter Jensen, og han bed igen...</p>

kan du skrive dit asp-script som:

<%
response.write( "document.write( \"" )
& "<h1>Mand bider hund i vovsebølle</hr>"
& "<p>Her imorges blev det bare formeget for postbud Peter Jensen, og han bed igen...</p>"
& "\" );" )
%>

man skal tænke sig godt om når man prøver det der for man skriver faktisk 2 sprog på een gang og de skal skrives med rigtig syntaks begge to.

mvh JakobA
Avatar billede txk Nybegynder
27. marts 2002 - 11:15 #25
noget liggende....


html = "<table border='1'>" +
"<tr>" +
"    <td>Seneste nyheder fra webservice</td>" +
"</td>" +


"<% Dim strSQL, Conn, DSN, rs, VisNyheder, i %>" +
"<%" +
"' Filnavn: dbconn.inc" +

"' Antal nyheder der skal vises (af de nyeste)" +
"VisNyheder=8" +

"' Databaseforbindelse - husk at angive den rigtige sti til databasen!" +
"Set Conn = Server.CreateObject('ADODB.Connection')" +
"DSN = 'DRIVER={Microsoft Access Driver (*.mdb)}; '" +
"DSN = DSN & 'DBQ=' & Server.MapPath('nyheder.mdb')" +
"Conn.Open DSN" +
"%>" +
"<body bgcolor='#336699'>" +
"<table border=1>" +
"<tr>" +
"    <td>Seneste nyheder fra webservice</td>" +
"</td>" +

"<%" +
"' SQL forespørgsel sørger for der er det rigtige antal" +
"strSQL = 'Select top ' & Request.Querystring('antal') & ' * From nyheder Order By Dato Desc'" +

"' Udfør strSQL (rs kommer til at indeholde dataen)" +
"Set rs = Conn.Execute(strSQL)" +

"'Tjecker om der er noget i databasen" +
"If rs.EOF Then" +

"  ' Hvis ikke, så spytter den flg. ud" +
"    Response.Write '<br><br><center><h3>Her er pt. ingen nyheder!</h3></center><br><br>'" +

"Else" +

"  Do " +

"    ' Udskriv overskrift og dato" +
"    Response.Write '<tr><td>.: ' & rs('overskrift') & '</td></tr>'" +

"    ' Tæller counteren (i) op hver gang et rs vises:)" +
"    i = i + 1" +

"    ' Gå til næste record i rs" +
"    rs.MoveNext" +

"  ' Fortsæt indtil counteren (i) når op på det VisNyheder indeholder, eller til rs.EOF" +
"  Loop Until i = VisNyheder Or rs.EOF" +

"End If" +

"' Luk forbindelse fra dbconn.inc" +
"Conn.Close" +
"Set Conn = Nothing" +
"%>" +
"</table>";

document.write(html);
Avatar billede txk Nybegynder
27. marts 2002 - 11:16 #26
går lige afk  i 5 min
Avatar billede jakoba Nybegynder
27. marts 2002 - 11:16 #27
Upd der skal da vist ikke være  )  forenden af første linie.
Avatar billede Slettet bruger
27. marts 2002 - 11:22 #28
Jeg er ikke helt sikker på, hvad du har gang i dér, men du må ikke blande ASP og JavaScript sammen på den måde. Kun dér, hvor du rent faktisk udskriver noget JavaScript, behøver du gåseøjne og plusser.

I det hele taget har du vist misforstået min pointe. Det, du skal gøre, er, at lave en side, som åbner fx "filnavn.js" og overskriver den med alle de seneste nyheder. Det betyder, at hver gang du tilføjer en nyhed i databasen, skal du også åbne denne side for at opdatere js-filen.
Avatar billede jakoba Nybegynder
27. marts 2002 - 11:23 #29
nej, nej, nej. det af din kode der er asp kode skal blive ved med at være asp kode.
Det er kun det tekst der skal sendes til brovseren der skal 'pakkes ind' så det bliver til javascript kode.
Avatar billede Slettet bruger
27. marts 2002 - 11:25 #30
Jeg er ikke god til ASP, men her er en skitse over nyheds-opdaterings-siden:

<%
Opret forbindelse til database.
Åbn "filnavn.js" vha. FileSystemObject og gør klar til skrivning til filen.
Start løkke:
For hvert element i database, skrive da noget html ud til "filnavn.js" (husk JavaScript-syntaks).
Slut med at skrive "document.write(html);" til filen.
Luk fil og database.
%>
<html>
<title>Opdatering</title>
<head>
</head>
<body>
Nyhederne er opdateret, hvis der ikke forekommer nogen fejlmelding!
</body>
</html>
Avatar billede jakoba Nybegynder
27. marts 2002 - 11:29 #31
Ups. vi er 'for meget' phoenixv.
Jeg bukker ud :-)
Avatar billede Slettet bruger
27. marts 2002 - 11:39 #32
Fire øjne, hænder og hjerner er bedre end to! :)
Avatar billede txk Nybegynder
27. marts 2002 - 12:54 #33
kan jeg få et eksempel på hvordan man skriver til en  filnavn.js
efter hvad jeg kan forstå er det, det som jeg skal
Avatar billede ras2000 Nybegynder
27. marts 2002 - 13:04 #34
Her er et eksempel der skriver til en fil:
<%
Dim FileSystemFileContext, FileSystemFile
Set FileSystemFile = CreateObject("Scripting.FileSystemObject")
FileSystemFile.CreateTextFile "c:\inetpub\wwwroot\variabler\script.js",8 , True
Set FileSystemFileContext = CreateObject("Scripting.FileSystemObject")
FileSystemFileContext.WriteLine ("bare en lille test")
FileSystemFileContext.Close
%>
Avatar billede txk Nybegynder
27. marts 2002 - 13:26 #35
ok vi er da kommet ind på det rigtige spor nu... med at skrive til  .js  fil

men når jeg gør det som du skriver ovenover kommer der en error

Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn't support this property or method: 'WriteLine'
/nyhedssystem/skrivtilfil.asp, line 6

hvad skal det besyde?
Avatar billede ras2000 Nybegynder
27. marts 2002 - 14:00 #36
Prøv at ændre det så der står:
<%
    stringpath = Server.MapPath("temp/script.js")
    response.write stringpath
    Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
    Set objTStream = objFSO.CreateTextFile(stringpath, True)
        objTStream.WriteLine "nyhed1 = 'noget tekst'"
%>
Avatar billede ras2000 Nybegynder
27. marts 2002 - 14:00 #37
Hov, du skal have en mappe der hedder temp.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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