molily: Hier die Lösung

Beitrag lesen

Mich würde daran nur interessieren, was der Code window["eval"].call... genau macht.
window.eval() ist mir ein Begriff, aber window["eval"].call()?
Leider ist diese Syntax nicht Google-tauglich, so dass ich immer noch keinen Plan hab was ich da gemacht habe.

Wenn du keinen Plan hast, wie es geht, und keinen Plan hast, warum jQuery es so macht, wie es jQuery macht, dann solltest du in Gottes Namen jQuery verwenden, anstatt Bruchstücke herauszuziehen. Das meine ich nicht böse. In jQuery steckt JavaScript-Erfahrung, die man sich nicht mal eben aneignen kann.

Zu deiner Frage: Ja, richtig, es macht einen Unterschied, wie eval aufgerufen wird. Man will Code üblicherweise im globalen Scope ausführen, anstatt in dem Funktions-Scope, in dem der eval-Aufruf letztlich steckt. Dazu muss man eval indirekt aufrufen: http://perfectionkills.com/global-eval-what-are-the-options/

Mathias