- How to activate javascript links with zombie.js
- <html>
- <body>
- <div id="test123">
- START_TEXT
- </div>
- <a href="javascript:go()">GO</a><br/>
- <script type="text/javascript">
- go = function() {
- var el = document.getElementById("test123");
- el.innerHTML = "CHANGED";
- }
- </script>
- </body>
- </html>
- var zombie = require("zombie");
- var browser = new zombie.Browser;
- browser.visit( "http://localhost:8000/testpage.html",
- function() {
- browser.clickLink("GO", function(e, browser, status) {
- var temp = browser.text("div#test123");
- console.log("content:", temp);
- });
- });
- node.js:201
- throw e; // process.nextTick error, or 'error' event on first tick
- ^
- Error: Cannot load resource: javascript:go()
- at History._resource (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:75:15)
- at History._pageChanged (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:60:21)
- at History._assign (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:213:19)
- at Object.location (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:51:24)
- at Object.click (/home/julian/temp/node_modules/zombie/lib/zombie/jsdom_patches.coffee:31:59)
- at Object.dispatchEvent (/home/julian/temp/node_modules/zombie/node_modules/jsdom/lib/jsdom/level2/html.js:480:47)
- at /home/julian/temp/node_modules/zombie/lib/zombie/eventloop.coffee:130:16
- at EventLoop.perform (/home/julian/temp/node_modules/zombie/lib/zombie/eventloop.coffee:121:7)
- at EventLoop.dispatch (/home/julian/temp/node_modules/zombie/lib/zombie/eventloop.coffee:129:19)
- at Browser.dispatchEvent (/home/julian/temp/node_modules/zombie/lib/zombie/browser.coffee:220:30)
- # Location uses this to move to a new URL.
- _assign: (url)->
- url = @_resolve(url)
- # FIX: support for javascript: protocol href
- if url.indexOf("javascript:")==0
- @_browser.evaluate(url.substr("javascript:".length))
- return
- was = @_stack[@_index]?.url # before we destroy stack
- @_stack = @_stack[0..@_index]
- @_stack[++@_index] = new Entry(this, url)
- @_pageChanged was
- browser.clickLink('#thelink', function(e, browser, status) {
- var temp = browser.text("div#test123");
- console.log("content:", temp);
- });