2012-10-23 16:45:31 -04:00
<!DOCTYPE html> < html > < head > < title > browser.coffee< / title > < meta http-equiv = "content-type" content = "text/html; charset=UTF-8" > < link rel = "stylesheet" media = "all" href = "docco.css" / > < / head > < body > < div id = "container" > < div id = "background" > < / div > < div id = "jump_to" > Jump To … < div id = "jump_wrapper" > < div id = "jump_page" > < a class = "source" href = "browser.html" > browser.coffee < / a > < a class = "source" href = "cake.html" > cake.coffee < / a > < a class = "source" href = "coffee-script.html" > coffee-script.coffee < / a > < a class = "source" href = "command.html" > command.coffee < / a > < a class = "source" href = "grammar.html" > grammar.coffee < / a > < a class = "source" href = "helpers.html" > helpers.coffee < / a > < a class = "source" href = "index.html" > index.coffee < / a > < a class = "source" href = "lexer.html" > lexer.coffee < / a > < a class = "source" href = "nodes.html" > nodes.coffee < / a > < a class = "source" href = "optparse.html" > optparse.coffee < / a > < a class = "source" href = "repl.html" > repl.coffee < / a > < a class = "source" href = "rewriter.html" > rewriter.coffee < / a > < a class = "source" href = "scope.html" > scope.coffee < / a > < / div > < / div > < / div > < table cellpadding = "0" cellspacing = "0" > < thead > < tr > < th class = "docs" > < h1 > browser.coffee < / h1 > < / th > < th class = "code" > < / th > < / tr > < / thead > < tbody > < tr id = "section-1" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-1" > ¶ < / a > < / div > < p > Override exported methods for non-Node.js engines.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nv" > CoffeeScript = < / span > < span class = "nx" > require< / span > < span class = "s" > ' ./coffee-script' < / span >
2012-04-10 14:57:45 -04:00
< span class = "nv" > CoffeeScript.require = < / span > < span class = "nx" > require< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-2" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-2" > ¶ < / a > < / div > < p > Use standard JavaScript < code > eval< / code > to eval code.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nv" > CoffeeScript.eval = < / span > < span class = "nf" > (code, options = {}) -> < / span >
< span class = "nx" > options< / span > < span class = "p" > .< / span > < span class = "nx" > bare< / span > < span class = "o" > ?=< / span > < span class = "kc" > on< / span >
2011-12-18 15:29:02 -05:00
< span class = "nb" > eval< / span > < span class = "nx" > CoffeeScript< / span > < span class = "p" > .< / span > < span class = "nx" > compile< / span > < span class = "nx" > code< / span > < span class = "p" > ,< / span > < span class = "nx" > options< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-3" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-3" > ¶ < / a > < / div > < p > Running code does not provide access to this scope.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nv" > CoffeeScript.run = < / span > < span class = "nf" > (code, options = {}) -> < / span >
2010-11-20 14:22:28 -05:00
< span class = "nv" > options.bare = < / span > < span class = "kc" > on< / span >
2012-10-23 16:45:31 -04:00
< span class = "nb" > Function< / span > < span class = "p" > (< / span > < span class = "nx" > CoffeeScript< / span > < span class = "p" > .< / span > < span class = "nx" > compile< / span > < span class = "nx" > code< / span > < span class = "p" > ,< / span > < span class = "nx" > options< / span > < span class = "p" > )()< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-4" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-4" > ¶ < / a > < / div > < p > If we're not in a browser environment, we're finished with the public API.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "k" > return< / span > < span class = "k" > unless< / span > < span class = "nb" > window< / span > < span class = "o" > ?< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-5" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-5" > ¶ < / a > < / div > < p > Load a remote script from the current domain via XHR.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nv" > CoffeeScript.load = < / span > < span class = "nf" > (url, callback) -> < / span >
< span class = "nv" > xhr = < / span > < span class = "k" > if< / span > < span class = "nb" > window< / span > < span class = "p" > .< / span > < span class = "nx" > ActiveXObject< / span >
< span class = "k" > new< / span > < span class = "nb" > window< / span > < span class = "p" > .< / span > < span class = "nx" > ActiveXObject< / span > < span class = "p" > (< / span > < span class = "s" > ' Microsoft.XMLHTTP' < / span > < span class = "p" > )< / span >
< span class = "k" > else< / span >
< span class = "k" > new< / span > < span class = "nx" > XMLHttpRequest< / span > < span class = "p" > ()< / span >
< span class = "nx" > xhr< / span > < span class = "p" > .< / span > < span class = "nx" > open< / span > < span class = "s" > ' GET' < / span > < span class = "p" > ,< / span > < span class = "nx" > url< / span > < span class = "p" > ,< / span > < span class = "kc" > true< / span >
< span class = "nx" > xhr< / span > < span class = "p" > .< / span > < span class = "nx" > overrideMimeType< / span > < span class = "s" > ' text/plain' < / span > < span class = "k" > if< / span > < span class = "s" > ' overrideMimeType' < / span > < span class = "k" > of< / span > < span class = "nx" > xhr< / span >
< span class = "nv" > xhr.onreadystatechange = < / span > < span class = "nf" > -> < / span >
2011-05-01 12:08:15 -04:00
< span class = "k" > if< / span > < span class = "nx" > xhr< / span > < span class = "p" > .< / span > < span class = "nx" > readyState< / span > < span class = "o" > is< / span > < span class = "mi" > 4< / span >
< span class = "k" > if< / span > < span class = "nx" > xhr< / span > < span class = "p" > .< / span > < span class = "nx" > status< / span > < span class = "k" > in< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span > < span class = "mi" > 200< / span > < span class = "p" > ]< / span >
2011-08-04 23:17:23 -04:00
< span class = "nx" > CoffeeScript< / span > < span class = "p" > .< / span > < span class = "nx" > run< / span > < span class = "nx" > xhr< / span > < span class = "p" > .< / span > < span class = "nx" > responseText< / span >
2011-05-01 12:08:15 -04:00
< span class = "k" > else< / span >
2012-10-23 16:45:31 -04:00
< span class = "k" > throw< / span > < span class = "k" > new< / span > < span class = "nb" > Error< / span > < span class = "s" > " Could not load < / span > < span class = "si" > #{< / span > < span class = "nx" > url< / span > < span class = "si" > }< / span > < span class = "s" > " < / span >
2011-08-04 23:17:23 -04:00
< span class = "nx" > callback< / span > < span class = "p" > ()< / span > < span class = "k" > if< / span > < span class = "nx" > callback< / span >
2010-11-20 14:22:28 -05:00
< span class = "nx" > xhr< / span > < span class = "p" > .< / span > < span class = "nx" > send< / span > < span class = "kc" > null< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-6" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-6" > ¶ < / a > < / div > < p > Activate CoffeeScript in the browser by having it compile and evaluate
2010-09-16 00:32:57 -04:00
all script tags with a content-type of < code > text/coffeescript< / code > .
2012-10-23 16:45:31 -04:00
This happens on page load.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "nv" > runScripts = < / span > < span class = "nf" > -> < / span >
< span class = "nv" > scripts = < / span > < span class = "nb" > document< / span > < span class = "p" > .< / span > < span class = "nx" > getElementsByTagName< / span > < span class = "s" > ' script' < / span >
< span class = "nv" > coffees = < / span > < span class = "p" > (< / span > < span class = "nx" > s< / span > < span class = "k" > for< / span > < span class = "nx" > s< / span > < span class = "k" > in< / span > < span class = "nx" > scripts< / span > < span class = "k" > when< / span > < span class = "nx" > s< / span > < span class = "p" > .< / span > < span class = "nx" > type< / span > < span class = "o" > is< / span > < span class = "s" > ' text/coffeescript' < / span > < span class = "p" > )< / span >
2011-05-01 12:08:15 -04:00
< span class = "nv" > index = < / span > < span class = "mi" > 0< / span >
< span class = "nv" > length = < / span > < span class = "nx" > coffees< / span > < span class = "p" > .< / span > < span class = "nx" > length< / span >
2012-10-23 16:45:31 -04:00
< span class = "nx" > do< / span > < span class = "nv" > execute = < / span > < span class = "nf" > -> < / span >
2011-05-01 12:08:15 -04:00
< span class = "nv" > script = < / span > < span class = "nx" > coffees< / span > < span class = "p" > [< / span > < span class = "nx" > index< / span > < span class = "o" > ++< / span > < span class = "p" > ]< / span >
2012-10-23 16:45:31 -04:00
< span class = "k" > if< / span > < span class = "nx" > script< / span > < span class = "o" > ?< / span > < span class = "p" > .< / span > < span class = "nx" > type< / span > < span class = "o" > is< / span > < span class = "s" > ' text/coffeescript' < / span >
2010-09-21 23:58:05 -04:00
< span class = "k" > if< / span > < span class = "nx" > script< / span > < span class = "p" > .< / span > < span class = "nx" > src< / span >
2011-05-01 12:08:15 -04:00
< span class = "nx" > CoffeeScript< / span > < span class = "p" > .< / span > < span class = "nx" > load< / span > < span class = "nx" > script< / span > < span class = "p" > .< / span > < span class = "nx" > src< / span > < span class = "p" > ,< / span > < span class = "nx" > execute< / span >
2010-09-21 23:58:05 -04:00
< span class = "k" > else< / span >
2010-11-20 14:22:28 -05:00
< span class = "nx" > CoffeeScript< / span > < span class = "p" > .< / span > < span class = "nx" > run< / span > < span class = "nx" > script< / span > < span class = "p" > .< / span > < span class = "nx" > innerHTML< / span >
2011-05-01 12:08:15 -04:00
< span class = "nx" > execute< / span > < span class = "p" > ()< / span >
2010-11-20 14:22:28 -05:00
< span class = "kc" > null< / span > < / pre > < / div > < / td > < / tr > < tr id = "section-7" > < td class = "docs" > < div class = "pilwrap" > < a class = "pilcrow" href = "#section-7" > ¶ < / a > < / div > < p > Listen for window load, both in browsers and in IE.< / p > < / td > < td class = "code" > < div class = "highlight" > < pre > < span class = "k" > if< / span > < span class = "nb" > window< / span > < span class = "p" > .< / span > < span class = "nx" > addEventListener< / span >
2012-10-23 16:45:31 -04:00
< span class = "nx" > addEventListener< / span > < span class = "s" > ' DOMContentLoaded' < / span > < span class = "p" > ,< / span > < span class = "nx" > runScripts< / span > < span class = "p" > ,< / span > < span class = "kc" > no< / span >
2010-09-21 23:58:05 -04:00
< span class = "k" > else< / span >
2012-10-23 16:45:31 -04:00
< span class = "nx" > attachEvent< / span > < span class = "s" > ' onload' < / span > < span class = "p" > ,< / span > < span class = "nx" > runScripts< / span >
2010-09-16 00:32:57 -04:00
< / pre > < / div > < / td > < / tr > < / tbody > < / table > < / div > < / body > < / html >