Don't like ads? PRO users don't see any ads ;-)
Guest

Untitled

By: a guest on May 5th, 2012  |  syntax: None  |  size: 2.30 KB  |  hits: 13  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. How to activate javascript links with zombie.js
  2. <html>
  3.   <body>
  4.   <div id="test123">
  5.   START_TEXT
  6.   </div>
  7.   <a href="javascript:go()">GO</a><br/>
  8.   <script type="text/javascript">
  9.   go = function() {
  10.   var el = document.getElementById("test123");
  11.   el.innerHTML = "CHANGED";
  12.   }
  13.   </script>
  14.   </body>
  15.   </html>
  16.        
  17. var zombie = require("zombie");
  18. var browser = new zombie.Browser;
  19.  
  20. browser.visit( "http://localhost:8000/testpage.html",
  21.         function() {
  22.                 browser.clickLink("GO", function(e, browser, status) {
  23.                         var temp = browser.text("div#test123");
  24.                         console.log("content:", temp);
  25.                   });
  26. });
  27.        
  28. node.js:201
  29.         throw e; // process.nextTick error, or 'error' event on first tick
  30.               ^
  31. Error: Cannot load resource: javascript:go()
  32.     at History._resource (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:75:15)
  33.     at History._pageChanged (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:60:21)
  34.     at History._assign (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:213:19)
  35.     at Object.location (/home/julian/temp/node_modules/zombie/lib/zombie/history.coffee:51:24)
  36.     at Object.click (/home/julian/temp/node_modules/zombie/lib/zombie/jsdom_patches.coffee:31:59)
  37.     at Object.dispatchEvent (/home/julian/temp/node_modules/zombie/node_modules/jsdom/lib/jsdom/level2/html.js:480:47)
  38.     at /home/julian/temp/node_modules/zombie/lib/zombie/eventloop.coffee:130:16
  39.     at EventLoop.perform (/home/julian/temp/node_modules/zombie/lib/zombie/eventloop.coffee:121:7)
  40.     at EventLoop.dispatch (/home/julian/temp/node_modules/zombie/lib/zombie/eventloop.coffee:129:19)
  41.     at Browser.dispatchEvent (/home/julian/temp/node_modules/zombie/lib/zombie/browser.coffee:220:30)
  42.        
  43. # Location uses this to move to a new URL.
  44. _assign: (url)->
  45.   url = @_resolve(url)
  46.  
  47.   # FIX: support for javascript: protocol href
  48.   if url.indexOf("javascript:")==0
  49.     @_browser.evaluate(url.substr("javascript:".length))
  50.     return
  51.  
  52.   was = @_stack[@_index]?.url # before we destroy stack
  53.   @_stack = @_stack[0..@_index]
  54.   @_stack[++@_index] = new Entry(this, url)
  55.   @_pageChanged was
  56.        
  57. browser.clickLink('#thelink', function(e, browser, status) {
  58.   var temp = browser.text("div#test123");
  59.   console.log("content:", temp);
  60. });