2012-03-30 156 views
2

在这个脚本中,HTML文档的body的onLoad属性中定义的函数不会被jsdom调用。为什么不?为什么jsdom不会处理脚本?

var testHTML = '<html> \n' + 
' <head> \n' + 
'  <title>AJAX Testing</title> \n' + 
'  <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> \n' + 
'  <script type="text/javascript"> \n' + 
'   function loaded(){ \n' + 
'    $("body").html("<p>AJAX was used to update the contents of this page!</p>"); \n' + 
'   } \n' + 
'  </script> \n' + 
' </head> \n' + 
' <body onLoad="loaded()"> \n' + 
'  <p>No ajax work has been done</p> \n' + 
' </body> \n' + 
'</html>'; 
var jsdom = require('jsdom'); 
var options = { 
     features:{ 
      FetchExternalResources:['script'] 
     , ProcessExternalResources:['script'] 
     } 
    } 
var document = jsdom.jsdom(testHTML, null, options) 
var window = document.createWindow(); 
console.log(window.document.innerHTML); 

回答

0

尝试使用<body onload="loaded()">

+0

感谢tmpvar。虽然没有解决这个问题:( – Trindaz 2012-03-31 00:53:29

+0

任何jsdom特定的调试技巧? – Trindaz 2012-03-31 00:54:24