I do it this way.
/**
* Injects javascript into the DOM, and optionally removes it after the script has run. */
static void inject(String javascript, [bool removeAfter = false]){
var s = Dom.createByTag("script");
s.attributes["type"] = "text/javascript";
s.text = javascript;
document.body.nodes.add(s);
if (removeAfter != null && removeAfter)
s.remove();
}
Two-way integration with JS is another matter, you can call JS libs using the method above, but getting any return values back into Dart isn't easily accomplished.