Javascript - Få fram sökvägen för js filen

Permalänk
Medlem

Javascript - Få fram sökvägen för js filen

Finns det något sätt att få fram sökvägen för en javascript fil med javascript?
I detta fall gäller det att få fram sökvägen för javascript filen som javascripten körs i.

Det spelar ingen roll hur det görs, så länge det är dynamiskt.

Det jag har gjort är ett litet bibliotek som jag ska kunna lägga till på olika sidor. Tillhörande javascript fil fetchar filer som ligger i samma mapp som javascript filen. Men vill slippa ändra sökvägen manuellt om biblioteket skulle ligga på en annan plats.
För tillfället gör jag i grova svängar så här;

constructor() { this.path = "modules/eWindow/"; // Detta vill jag ska vara helt dynamiskt. } async Confirm() { let response = await fetch(this.path+"confirm.htm"); }

Lade till mer information om vad jag gör.
Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.

Permalänk

Kan du specificera lite fler detaljer kring ditt problem? Relativa sökvägar i förhållande till vad? CWD? En webbserver?

Permalänk
Medlem
Skrivet av genomelak:

Kan du specificera lite fler detaljer kring ditt problem? Relativa sökvägar i förhållande till vad? CWD? En webbserver?

Det kanske inte är korrekt att säga den relativa sökvägen..?
Men att man utgår från där javascript filen ligger när man ska peka mot en annan fil.

Det jag gör är att fetcha filer som ligger i samma mapp som javascript filen.
Just nu har jag i javascript filen en variabel som innehåller sökvägen till javascript filen. Det funkar, men det bästa vore om det är dynamiskt.

Förmodar att du inte menar Chronical Wasting Disease med CWD...

Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.

Permalänk
Medlem
Skrivet av ELF:

Förmodar att du inte menar Chronical Wasting Disease med CWD...

Current Working Directory

Visa signatur

Desktop spel m.m.: Ryzen 9800X3D || MSI X870 Tomahawk Wifi || MSI Ventus 3x 5080 || Gskill FlareX 6000 64GB || Kingston KC3000 2TB || Samsung 970 EVO Plus 2TB || Samsung 960 Pro 1TB || Fractal Torrent || Asus PG42UQ 4K OLED
Arbetsstation: Ryzen 7945HX || Minisforum BD790i || Asus Proart 4070 Ti Super || Kingston Fury Impact 5600 65 GB || WD SN850 2TB || Samsung 990 Pro 2TB || Fractal Ridge
Proxmox server: Ryzen 5900X || Asrock Rack X570D4I-2T || Kingston 64GB ECC || WD Red SN700 1TB || Blandning av WD Red / Seagate Ironwolf för lagring || Fractal Node 304

Permalänk
Medlem

const vadDuLetarEfter = require('./sammamapp' eller '../enmappnivåutanför')

Är detta vad du letar efter?

Permalänk
Medlem
Skrivet av Jaevel:

const vadDuLetarEfter = require('./sammamapp' eller '../enmappnivåutanför')

Är detta vad du letar efter?

Ja, det är det jag letar efter. PHP sköter det som sagt prima, men Javascript verkar inte ha stöd för det.
Javascript utgår antingen från roten av webbservern eller från där filen som länkat Javascripten ligger.

Visa signatur

www.fckdrm.com - DRM år 2025? Ha pyttsan.

Permalänk
Medlem
Skrivet av ELF:

Ja, det är det jag letar efter. PHP sköter det som sagt prima, men Javascript verkar inte ha stöd för det.
Javascript utgår antingen från roten av webbservern eller från där filen som länkat Javascripten ligger.

Se där, nu har du ju lyckats utveckla din frågeställning till något begripligt. Hoppas du kan få hjälp med den
Du kan bidra ytterligare med att berätta vad du försöker göra mer specifikt så kanske ännu fler kan ha en chans att förstå ditt problem

Permalänk

Från det du skriver förstår jag det som att du önskar använda dig av relativa sökvägar för fetch()-anrop gjorda från JavaScriptfiler som exekveras i en webbläsarmiljö. Specifikationen för fetch() hanterar URL-argumentet enligt den för webbläsare väldefinierade URL-standarden.

En URL kan precis som en sökväg i ett filsystem vara relativ men ska då enligt standarden tolkas i relation till webbsidans bas-URL. När ingenting annat anges är en webbsidas bas-URL den absoluta delen av webbsidans aktuella URL. Om webbsidans aktuella URL exempelvis skulle vara http://localhost/katalog/index.html blir webbsidans bas-URL http://localhost/katalog/. Varje relativ URL kommer alltid att tolkas i relation till webbsidan bas-URL, oavsett vilken sökväg den exekverande JavaScript-filen har. Webbsidans bas-URL går att konfigurera genom att inkludera en <base/>-tagg i webbsidans huvud men påverkar då varje relativ URL på webbsidan vilket kan ge oönskade effekter.

Det är dock en god idé att, precis som du gör, separera ett större projekt till flera moduler. För att kunna göra detta krävs ett system för moduler vilket finns i JavaScript-standarden sedan ett antal år tillbaka. Du kan läsa mer om detta system på MDN.

Om projektet du jobbar med är tänkt att användas i skarpt läge mot riktiga användare bör du dock överväga att använda dig av en så kallad bundler. Detta då stödet för att ladda moduler direkt i webbläsaren har tillkommit relativt nyligen och därför inte kan garanteras för varje användare och den webbläsare de använder sig av. Jag rekommenderar därför att du läser mer om de två populära verktygen webpack och rollup.