Avatar billede groyk Novice
21. oktober 2008 - 16:13 Der er 17 kommentarer og
1 løsning

Filens placering (dirname)

Hej

Jeg bruger denne funktion i php til at finde ud af hvilken mappe en given fil ligger i.

function GetThisUrl() {
    $doc_root = strlen($_SERVER['DOCUMENT_ROOT']);
    return "http://" . getenv("HTTP_HOST") . substr(__FILE__,$doc_root);
}

Hvordan omskrives denne funktion til JavaScript??
Avatar billede jokkejensen Novice
21. oktober 2008 - 16:16 #1
window.alert(window.location)

window.location har en række egenskaber som window.alert(window.location.href)

Vh
Avatar billede olebole Juniormester
21. oktober 2008 - 18:55 #2
<ole>

Du kan undersøge, hvilke metoder og properties location objektet indeholder med dette lille script:

<script type="text/javascript">
var a = [];
for (var x in location) a.push(x+" => "+location[x]);
alert(a.join("\n"));
</script>

Vær dog opmærksom på, at location objektet ikke er en del af den standardiserede JavaScript kerne, hvorfor properties og metoder veksler fra JS-parser til JS-parser (browser til browser). Derfor bør du naturligvis kun stole på fællesmængden  ;o)

/mvh
</bole>
Avatar billede groyk Novice
21. oktober 2008 - 20:35 #3
Er ikke så hård til java script.

Jeg skal bruge stien til filen (ikke url'en i browseren)
Avatar billede olebole Juniormester
21. oktober 2008 - 20:55 #4
<script type="text/javascript">
var sPath = location.pathname;
alert(sPath);
</script>
Avatar billede olebole Juniormester
21. oktober 2008 - 20:59 #5
- men den PHP-kode, du viser, gør jo noget helt andet ... og ret ubrugeligt  =)
Avatar billede olebole Juniormester
21. oktober 2008 - 21:00 #6
Din PHP-kode, kørt på denne side, ville f.eks. give noget à la:
    http://www.eksperten.dk\spm\849826
Avatar billede groyk Novice
21. oktober 2008 - 22:14 #7
Præcis, det er det jeg søger.

Men såfremt php koden blev kaldt i en includeret fil, ville den give url'en på den inkluderede fil, og ikke den der er åbnet i browseren.
Avatar billede olebole Juniormester
21. oktober 2008 - 22:31 #8
"Præcis, det er det jeg søger." >> Hvad i alverden vil du dog bruge dét til ...?!??!!! Jeg har svært ved at forestille mig et scenarium, hvor sådan en streng kan være ønskelig/brugbar
Avatar billede groyk Novice
22. oktober 2008 - 07:30 #9
Hej Ole

Lige nu er det fordi jeg har 2 *.js scripts hvor den ene referere til den anden. Dette virker ikke med relativ path, da de filer scriptet bliver kaldt fra ligger i forskellige mapper.

Det kan godt være der er en MEGET nemmere løsning, jeg kan bare ikke få øje på den.

Lige nu er url'en hardcoded i js filen, men det medfører jo at hvis jeg flytter scritpet over i en anden mappe / anden server eller lign. så virker skiddet ikke.
Avatar billede olebole Juniormester
22. oktober 2008 - 10:42 #10
Du må forklare præcis, hvad det er, du prøver på  =)
Avatar billede groyk Novice
22. oktober 2008 - 10:58 #11
Ok, jeg prøver.

1. HTML fil (index.php)
Noget HTML
<script type="text/javascript" src="javascript1.js"></script>
noget HTML

2. javascript1.js
Noget js
l.setAttribute("href","HTTP_HOST/mappe/til/css/cssdokument.css");
noget js

Nu vil jeg gerne lave en relativ sti til css filen, men den skal virke uanset hvilken server scriptet ligger på.

PS: css filen ligger altid i samme mappe som javascript1.js
Avatar billede olebole Juniormester
22. oktober 2008 - 12:29 #12
En JS-fil ved ikke, hvor den ligger. Den ved kun, hvor det dokument, den 'lever i' befinder sig, så du må nok finde en anden tilgang
Avatar billede groyk Novice
22. oktober 2008 - 12:43 #13
Har du en ide til hvordan det kan gøres?

Kan man evnt. checkke hvilken fil en js fil kaldes fra. ala

<script type="text/javascript" src="dir/til/js/javascript1.js"></script>

Så hente det der står i src="">
Avatar billede olebole Juniormester
22. oktober 2008 - 13:03 #14
Nej, så ville filen jo vide, hvor den er. Du må nok finde en anden tilgang  ;o)
Avatar billede groyk Novice
22. oktober 2008 - 13:48 #15
Hmm. :-)

Selvfølgelig, havde jeg lige glemt!

Kan du ikke smide et svar ole. Som tak for hjælpen.
Avatar billede olebole Juniormester
22. oktober 2008 - 14:12 #16
Man kunne jo vælge at lægge JS- og CSS-filen et bestemt sted, så den lokale sti altid er den samme. Ellers kunne man vælge at lægge stien til mappen, JS-filen ligger i, i en variabel i begyndelsen af filen:
    var sPath2mySelf = "/sti/til/mappe/";

Så kan du altid sige:
    l.setAttribute("href", sPath2mySelf + "cssdokument.css");
Avatar billede olebole Juniormester
22. oktober 2008 - 14:13 #17
:)
Avatar billede olebole Juniormester
22. oktober 2008 - 15:36 #18
Tak for points  :)
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