Avatar billede hmm10 Nybegynder
20. august 2006 - 19:12 Der er 27 kommentarer og
2 løsninger

DOCUMENT_ROOT i javascript?

Hej,

Der findes en variabel i php kaldet $_SERVER['DOCUMENT_ROOT'], som returnere den specifikke root-sti. Men hvad hedder denne function i javascript?

HMM10
Avatar billede mclemens Nybegynder
20. august 2006 - 19:17 #1
Det eneste der er tilgængelig er window.location.href ...
Prøv at alert'e den og se om du kan bruge den
ved at splitte den eller andet...
Avatar billede hmm10 Nybegynder
20. august 2006 - 19:19 #2
Så får jeg stien fra adresselinjen. Jeg skal bruge den fuldt root-sti.
Avatar billede mclemens Nybegynder
20. august 2006 - 19:19 #3
Avatar billede mclemens Nybegynder
20. august 2006 - 19:28 #4
Javascript er clientside php er serverside ... Gentager gerne: Det eneste der er tilgængelig _ER_ window.location.href og ja, det er det der står i adresselinjen ... Den kan du måske slette noget fra med substring eller ved at splitte den ... men andet kan du ikke...

Det svarer lidt til at jeg ser http:// www.tes_tester-domæne.dk/123fil.html og jeg kunne fortælle at den serverside sti var /hemmeligefiler/123fil.html fordi at der var kørt en mod-replace eller andet ... Indrømmer dog at de kunne have fjernet domænenavnet så man blot fik /spm/727292 ved en window.location.href alert på denne side ... Men det har de ikke... du kan med andre ord ikke få en fuld rootsti ... du kan få:

<script type="text/javascript">
alert(window.location.host);
alert(window.location.hostname);
alert(window.location.href);
alert(window.location.pathname);
alert(window.location.port);
alert(window.location.hash);
alert(window.location.search);
alert(window.location.protocol);
</script>

og et link :o)
http://www.w3schools.com/htmldom/dom_obj_location.asp
Avatar billede mclemens Nybegynder
20. august 2006 - 19:29 #5
alert(window.location.pathname); svarer så til /spm/727292 ...
men det er jo ikke med sikkerhed det samme som: [Jeg skal bruge den fuldt root-sti.]
Avatar billede pidgeot Nybegynder
20. august 2006 - 19:32 #6
Hvis du SKAL bruge det, er det vel bare at få PHP til at skrive den ud - du kan jo godt sige at en side skal bruge en javascript-fil med en anden extension end .js, så du skal bare gemme den som en PHP-fil der udskriver en JavaScript-kommando der modtager en string i en variabel - men jeg kan ikke se hvad klienten skal med det.
Avatar billede hmm10 Nybegynder
20. august 2006 - 19:43 #7
mclemens -> Jeg tror bare, at jeg ser bort fra dine gentagelser. Du behøver ikke gentage og tale ned til mig omkring php, det giver kun dårlig karma næste gang!

pidgeot -> Dvs. jeg skal include en php-fil istedet med mit script og så kører den traditionelle $_SERVER['DOCUMENT_ROOT'], og ikke bruge en js-fil? Problemet er, at jeg har en masse stier, som bla. bliver includet (php) og krydset med andre stier (javascript) og er nu endt med at mange et overblik i min næste include (javascript).. derfor ville det være rart med et overblik.
Avatar billede mclemens Nybegynder
20. august 2006 - 19:48 #8
[ mclemens -> Jeg tror bare, at jeg ser bort fra dine gentagelser. ]
Det var også mere ment som en gentagelse med en længere uddybning ???

[ Du behøver ikke gentage og tale ned til mig omkring php, ]
Jeg taler skam ikke ned til dig ? Du spørger om hvad den hedder og
jeg svarer at det gør den ikke 100%. Jeg har aldrig talt ned til dig omkring
php? Jeg skrev i 20/08-2006 19:19:46 hvad det svarede til på php's platform
for at spare dig lidt test tid - hvis du nu ikke kunne bruge det...

[ det giver kun dårlig karma næste gang! ]
Jamen, værsgo karma hermed givet, på forhånd tak!
Avatar billede mclemens Nybegynder
20. august 2006 - 19:50 #9
((( Deltog ikke i et spørgsmål til 5 point for at håne
dig, jeg har alt for lidt tid til den slags, TAK )))
Avatar billede mclemens Nybegynder
20. august 2006 - 19:54 #10
((( Og hvis det var denne linje du troede var hån: "Javascript er clientside php er serverside" fremstår det ikke om hvor stor din vide indenfor php vs. js er, derfor sagde jeg blot at js ikke er serverside og derfor ikke kunne måle det - ligesom jeg forklarede i dette spørgsmål om php -> javascript http://www.eksperten.dk/spm/724039 - så fik jeg vist det hele med. )))
Avatar billede pidgeot Nybegynder
20. august 2006 - 20:01 #11
Ja, faktisk, men du behøver ikke include på en anden måde end ellers - du kan stadig bruge <script src=""> i din HTML. Filen skal bare hedde .php i stedet for .js, og så indeholde de PHP-kommandoer der skal til for at browseren ser noget javascript-kode der smider indholdet af $_SERVER['DOCUMENT_ROOT'] i en variabel.

Men som sagt kan jeg ikke se hvorfor du skal bruge netop DOCUMENT_ROOT, og ikke kan bruge de ting window.location giver dig i stedet. Du har intet at bruge server-stien på klientens side, du skal højst vide hvilket bibliotek scriptet ligger i i forhold til domænets rod (og det er noget helt andet!) - og hvis du ikke kan hardcode det, er der utvivlsomt andre muligheder der.
Avatar billede hmm10 Nybegynder
20. august 2006 - 20:03 #12
Jammen tak. Har også lagt en lille hilsen, samt gjort mig et notat: "Forstår ikke et hint. Tager alt som trusler."
Avatar billede hmm10 Nybegynder
20. august 2006 - 20:08 #13
pidgeot ?
Avatar billede mclemens Nybegynder
20. august 2006 - 20:20 #14
Velbekom, hvis du nu istedet havde skrevet, at det var et hint, havde jeg selvfølgelig fjernet min. Men det du skrev i 20/08-2006 19:43:39 kan kun opfattes på en måde, nemlig at jeg har trådt dig over tæerne - det er muligt at jeg læser det forkert, men ordene gentage og tale ned til mig - forbundet med - at se bort fra gentagelser - samt ordet - negativ karma efterfulgt af et udråbstegn - og ikke en lille grinende smiley istedet læser jeg på en måde, nemlig at du synes jeg har opført mig skidt. Derfor synes jeg ikke at det angreb / tolkning du lavede i 20/08-2006 19:48:06 var berettiget - derfor karmaen... Hvis du nu kigger på http://www.eksperten.dk/spm/724039#rid6365614 kunne man udlede følgende:


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title>

<style type="text/css">
#phpset{height:20px;overflow:hidden;position:absolute;top:-20px;}
</style>

<script type="text/javascript">
var servdocroot;
window.onload=function(){
servdocroot=document.getElementById("phpset").childNodes[0].nodeValue;
alert(servdocroot);
}
</script>

</head><body>


<div id="phpset">yes</div></body></html>



... og så få php til at outputte <div id="phpset"><?php echo $_SERVER['DOCUMENT_ROOT'] ;?></div>





Jeg fjerner lige min karma og spiller bolden over på din banehalvdel
og ser om du samler "bolden" op og siger tak for kampen ?
Avatar billede mclemens Nybegynder
20. august 2006 - 20:21 #15
Men som sagt jeg havde var svært ved at læse din kommentar
i 20/08-2006 19:43:39 anderledes ... desværre :)
Avatar billede mclemens Nybegynder
20. august 2006 - 21:06 #16
^ - [ havde var ]? - Ja, ja, det går godt ;D
... Virkede scriptet ?
Avatar billede hmm10 Nybegynder
20. august 2006 - 21:06 #17
Så er bolden vist kommet i mål. Dog med et gult kort til mig kan jeg se i min karma ;) Trist, at folk ikke skriver deres navn, når de giver karma. (Håber jeg, at version 2 kræver - men nu må vi se, hvad deres rundspørge ender med)
Avatar billede mclemens Nybegynder
20. august 2006 - 21:06 #18
Ved ikke hvem der lagde dem anden karma ...
Avatar billede mclemens Nybegynder
20. august 2006 - 21:07 #19
Update, ja synes karma systemet er noget rod - der desværre misbruges
alt for ofte ... det med konsekvent navn ville være rart :o)
Avatar billede hmm10 Nybegynder
20. august 2006 - 21:11 #20
mclemens -> forslaget er i sig selv ikke så dårligt. Men det angiver jo mit php-script's placering og ikke javscriptet's ;). Jeg prøver lige at omdøbe min js-fil til php, måske det vil hjælpe.
Avatar billede mclemens Nybegynder
20. august 2006 - 21:12 #21
Jep, min fejl - så skal du bruge pidgeot istedet :o)
Avatar billede mclemens Nybegynder
20. august 2006 - 21:15 #22
Evt. med:

<?php header('content-type: application/x-javascript;charset=iso-8859-1'); ?>
var servdocroot;="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>";
...
Avatar billede mclemens Nybegynder
20. august 2006 - 21:16 #23
Ups...
<?php header('content-type: application/x-javascript;charset=iso-8859-1'); ?>
var servdocroot="<?php echo $_SERVER['DOCUMENT_ROOT']; ?>";
Avatar billede hmm10 Nybegynder
20. august 2006 - 21:24 #24
Det virker. Lidt irriterende at den så bare hedder .php i min kode, og ikke .js, men nu har jeg da fået et overblik.. Og min editor ser mit javascript som tekst og ikke som script, så jeg har ingen "farver" mere :( MEN det virker!

pidgeot -> smid et svar.

Vil I evt. dele 20 points?
Avatar billede pidgeot Nybegynder
20. august 2006 - 21:37 #25
Det kan vi godt for min skyld :)

Din editor kan muligvis sættes op til at highlighte det som JavaScript på den ene eller anden måde - hvordan afhænger selvfølgelig af hvilken du bruger.

Og om ikke andet kan du vel lave et PHP-script der includer en .js-fil - så kan du bruge .php filen fra din HTML, men stadig arbejde med .js "internt".
Avatar billede hmm10 Nybegynder
20. august 2006 - 21:44 #26
mclemens -> dele de 20?
Avatar billede mclemens Nybegynder
20. august 2006 - 21:54 #27
Ok, hvis pidgeout synes så er
jeg lige med på en deler :o)
Avatar billede mclemens Nybegynder
20. august 2006 - 21:54 #28
pidgeout -> pidgeot... undskyld pidgeot ;)
Avatar billede mclemens Nybegynder
20. august 2006 - 21:58 #29
Og 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
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