Zeilennummer in JavaScript-Scripten
flashnfantasy
- javascript
Gibt es für Javascript so etwas ähnliches wie die
__FILE__ und __LINE__ Konstante für File und Zeilennummer ?
Ich setze momentan in einem sehr umfangreichen Script einen Befehl mit dem Namen 'bench()' der mir immer die Dauer von einem Bench zum nächsten zeigt und ich hätte gerne den Befehl jetzt verwendet in der Form bench(__LINE__).
Im SELFHTML finde ich dazu nichts, anscheinend bin ich zu blöd dazu.
noch nie was davon gehört. wieso übergibst du nicht einfach die zeilennummer selbst?
noch nie was davon gehört. wieso übergibst du nicht einfach die zeilennummer selbst?
Weil ich den Script ständig ändere und damit sich alles immer wieder verschiebt.
Aber ich benutze ja sowieso Kommentare, anders habe ich sonst keine Übersicht.
Tag auch,
noch nie was davon gehört. wieso übergibst du nicht einfach die zeilennummer selbst?
Weil ich den Script ständig ändere und damit sich alles immer wieder verschiebt.
Aber ich benutze ja sowieso Kommentare, anders habe ich sonst keine Übersicht.
Du kannst Dir eine kleine Build/Make-Umgebung selber bauen.
Was Du brauchst ist eigentlich ein Script, was Dir von Deinem kompletten Code eine Kopie anfertigt und dabei bestimmte Platzhalter (z.B. __LINE__ und __FILE__) mit den entsprechenden Werten austauscht.
In Perl läßt sich sowas ganz einfach realisieren.
Grüße,
Martin.
Werde mal folgendes versuchen,...
http://de.selfhtml.org/javascript/beispiele/fehlerbehandlung.htm
Tag auch,
Gibt es für Javascript so etwas ähnliches wie die
__FILE__ und __LINE__ Konstante für File und Zeilennummer ?
dafür gibt es zumind. in FF, Moz, Netscape einen Workaround.
8<--
try {
irgendwas.kann.hier.stehen;
} catch (exc) {
alert(exc.stack);
}
8<--
Aus "exc.stack" kannst Du Dir die gewünschte Information herausparsen. Im IE weiß ich keine Lösung.
Ich setze momentan in einem sehr umfangreichen Script einen Befehl mit dem Namen 'bench()' der mir immer die Dauer von einem Bench zum nächsten zeigt und ich hätte gerne den Befehl jetzt verwendet in der Form bench(__LINE__).
Wenn ich "bench()" aufrufe, dann erhalte ich folgendes ...
8<--
ReferenceError: bench is not defined
8<--
Woher hast Du das?
Grüße,
Martin.
Danke, mit dem exc-Stack kann ich nun weiter 'forschen'
------------------
bench() ist eine eigene Routine...
wobei du wahrscheinlich jetzt über einige andere Befehle wie lpad stolpern wirst...
openDocWindow();
var wDoc;
function openDocWindow()
{
wDoc = window.open("","subInfo","resizable,scrollbars,toolbar,titlebar,personalbar");
wDoc.innerHeight = 200;
wDoc.innerWidth = 600;
}
}
// Timer
var benchTime = new Date();
var benchTotal = 0;
function docWindowWrite(startText, farbe, comment, deep)
{
if (deep == undefined) deep = 0;
wDoc.document.writeln("<div style="font-family: Courier New; font-size: 9pt;"><div style="display:inline; width: 250pt; color:#000; background-color: "+farbe+"; padding-left:" + (10*deep) + "">");
wDoc.document.writeln(startText + " ");
wDoc.document.writeln("</div>" + comment + "</div>");
}
function bench(comment, deep)
{
if (deep == undefined) deep = 0;
var nowbenchTime = new Date();
var diff = nowbenchTime - benchTime.getTime();
benchTotal += diff;
if (comment == undefined) comment = "";
docWindowWrite(comment , "#acc",
lpad(diff, 4, "_") + "mSec (Total: " + lpad(benchTotal, 4, "_") + "mSec)",
deep);
benchTime = nowbenchTime;
}