# Javascript

## Javascript-konsol

&Alt;&Ctrl; J öppnar Javascript-konsolen (bara tillgänglig om libkjsembed är tillgängligt vid kompilering och körning).

Javascript-konsolen är ett gränssnitt för den inbäddade JS-tolken, som kan användas för att roa sig eller för tester.

## Gränssnitt för Javascript

Varning: Stödet för Javascript är helt stabilt, och du kan inte förlora någon data genom att använda det. Dock kanske inte dina skript kommer att fungera med framtida versioner av &krusader;, eftersom stödet för Javascript ändras.

Ladda gärna uppp dina favoritutökningar i Javascript så att de blir tillgängliga för &krusader;s gemenskap. Tack!

Program i Javascript har oftast två filer `exempel.js` och `exempel.ui`. De installeras i `~/.kde/share/apps/krusader/js/`, och en användaråtgärd med "%_Script" startar Javascript. För närvarande finns två demonstrationer av Javascript: `root-mount-extension.tar.bz2` och `js-demo-calc.tar.bz2` som kommer att förklaras ytterligare.

När ett skript körs, vet det inte om sitt ursprung (eller kanske det finns ett sätt att ta reda på det som vi inte känner till), och alla relativa sökvägar är relativa i förhållande till nuvarande arbetskatalog. Men den katalogen är (normalt) inte den där skriptet finns, utan aktuell katalog för den aktiva panelen i Krusader. Det måste förbli på detta sätt. För att dock referera till ytterligare filer som .ui (användargränssnitt exporterade av &Qt; Designer), behöver man sökvägen till skriptet. Alternativet där absoluta sökvägar används är mer än obekvämt. Av den orsaken introducerades variabeln "scriptDir". Om ett skript vill läsa in ett grafiskt gränssnitt från en .ui-fil, kan det göras på följande sätt: var ui = Factory.loadui( scriptDir + 'filename.ui' ); Du rekommenderas att använda Dialog som bas när grafiska gränssnitt som ska användas med Javascript konstrueras. Kör dialogrutan med: ui.exec(); Elementen i det grafiska gränssnittet kan kommas åt på följande sätt: ui.child('komponentnamn').

För närvarande exponeras bara C++ objekten 'Krusader' och 'PanelManager' utan någon bakomliggande logik. De kan inspekteras genom att använda Javascript-konsolen och funktionerna 'properties()', 'children()' och 'slots()'. Underliggande objekt kan kommas åt med funktionen 'child("underliggande objektnamn")' som returnerar själva objektet. För närvarande är variabeln scriptDir mer användbar. Genom att följa utökningen root-mount, är det reda möjligt att skapa avancerade grafiska gränssnitt för kommandoradsverktyg.

Du kan prova med 'Krusader.setCaption("Hej hå, vi från vår gruva gå!");', 'Krusader.children();', 'Krusader.child("help").slots();', 'alert(Krusader.properties())' eller 'Krusader.child("help").show();'... Dessutom finns en ny platsmarkör för användaråtgärder, %_Script()%, som kör en extern fil.

Observera: Objektet 'Krusader' kommer att ändras. Vi har inte tagit beslut om gränssnittet för Javascript ännu (vid tiden för utgåvan 1.70.0). Alla idéer välkomnas. Använd gärna &krusader;s forum för synpunkter.

Stödet för Javascript är baserat på KJSEmbed. Några exempel som visar hur kraftfullt detta bibliotek är, finns här. Stöd för alla KDE:s grundläggande teknologier, som DCOP och Kparts tillhandahålls. Du kan till och med ladda hela grafiska gränssnitt från .ui-filer, skapade med &Qt; Designer. Ett exempel på en utökning som använder det, finns här.