OK, after a short binary search, I have tracked my issue down to jsdom >=v0.2.11
I don't see anything that stands out in the changelog that would cause your issue, but you could try 'npm install -g [email protected]' and see if your issue goes away. Diving into jsdom to see if I can find and fix my problem. On Apr 28, 6:40 am, wizard113 <[email protected]> wrote: > I am also running jsdom, and have been seeing an old error pop back - > the jsdom script executor is throwing 'ReferenceError: navigator is > not defined' nearly every script I execute. > > I suspect this is on node.js' end, but I am still digging. The reason > I post here is that I also saw this after a v0.4.11 upgrade to v0.6.15 > of node. > > On Apr 25, 6:17 pm, toranb <[email protected]> wrote: > > > > > > > > > How can I tell if the script is being executed viajsdom? I assumed it > > was node but wanted to be sure. > > > I'll need to look into this a bit more to verify if this is ajsdom > > issue or something related to node itself > > > Thanks for the in-depth answer! > > > Toran > > > On Apr 25, 7:24 pm, Elijah Insua <[email protected]> wrote: > > > > On Wed, Apr 25, 2012 at 11:28 AM, toranb <[email protected]> wrote: > > > > I've been using jasmine to unit test my javascript the last few > > > > months. I've been running these tests with node (v4)jsdom/jasmine- > > > > node/jasmine-jquery > > > > > Everything was fine until I had to upgrade from node v4 -I did a make > > > > install from the 6.11 build and noticed that I had to updatejsdom. > > > > >jsdomand orjsdom+ node seems to have changed how it views the > > > > "window" keyword. > > > > is this in the context ofjsdom'sscript executor or node's? I'm assuming > > > the former, but that is still weird. Thejsdomscript context doesn't > > > define a 'global' variable. It is more likely that the string > > > representation of a window is incorrect. > > > > Here's how I came to that conclusion: > > > > Code: > > > > require('jsdom').env({ > > > html : "<html><head></head><body></body></html>", > > > src : "window.stringified = window + ''; window.typeofGlobal = typeof > > > global; window.keys = Object.keys(window)", > > > done : function(err, window) { > > > console.log('[jsdomcontext] window.stringified:', window.stringified, > > > '\n'); > > > console.log('[jsdomcontext] typeof global:', window.typeofGlobal, > > > '\n'); > > > console.log('[jsdomcontext] window.keys:', > > > JSON.stringify(window.keys), '\n'); > > > console.log('[node context] window === global: ' + (window === > > > global), > > > '\n'); > > > } > > > > }); > > > > Output: > > > > tmp‣ node window-global.js > > > [jsdomcontext] window.stringified: [object global] > > > > [jsdomcontext] typeof global: undefined > > > > [jsdomcontext] window.keys: > > > ["location","addEventListener","removeEventListener","dispatchEvent","raise > > > > > > ","setTimeout","setInterval","clearInterval","clearTimeout","__stopAllTimer > > > > > > s","run","getGlobal","dispose","top","parent","self","frames","window","doc > > > > > > ument","stringified","typeofGlobal","_length","length","close","getComputed > > > > > > Style","console","navigator","XMLHttpRequest","name","innerWidth","innerHei > > > > > > ght","outerWidth","outerHeight","pageXOffset","pageYOffset","screenX","scre > > > > > > enY","screenLeft","screenTop","scrollX","scrollY","scrollTop","scrollLeft", > > > > > > "alert","blur","confirm","createPopup","focus","moveBy","moveTo","open","pr > > > > > > int","prompt","resizeBy","resizeTo","scroll","scrollBy","scrollTo","screen" > > > > > > ,"Image","languageProcessors","resourceLoader","HTMLCollection","HTMLOption > > > > > > sCollection","HTMLDocument","HTMLElement","HTMLFormElement","HTMLLinkElemen > > > > > > t","HTMLMetaElement","HTMLHtmlElement","HTMLHeadElement","HTMLTitleElement" > > > > > > ,"HTMLBaseElement","HTMLIsIndexElement","HTMLStyleElement","HTMLBodyElement > > > > > > ","HTMLSelectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLInputE > > > > > > lement","HTMLTextAreaElement","HTMLButtonElement","HTMLLabelElement","HTMLF > > > > > > ieldSetElement","HTMLLegendElement","HTMLUListElement","HTMLOListElement"," > > > > > > HTMLDListElement","HTMLDirectoryElement","HTMLMenuElement","HTMLLIElement", > > > > > > "HTMLDivElement","HTMLParagraphElement","HTMLHeadingElement","HTMLQuoteElem > > > > > > ent","HTMLPreElement","HTMLBRElement","HTMLBaseFontElement","HTMLFontElemen > > > > > > t","HTMLHRElement","HTMLModElement","HTMLAnchorElement","HTMLImageElement", > > > > > > "HTMLObjectElement","HTMLParamElement","HTMLAppletElement","HTMLMapElement" > > > > > > ,"HTMLAreaElement","HTMLScriptElement","HTMLTableElement","HTMLTableCaption > > > > > > Element","HTMLTableColElement","HTMLTableSectionElement","HTMLTableRowEleme > > > > > > nt","HTMLTableCellElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIF > > > > > > rameElement","_augmented","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFIC > > > > > > ATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","StyleSheet","MediaList","C > > > > > > SSStyleSheet","CSSRule","CSSStyleRule","CSSMediaRule","CSSImportRule","CSSS > > > > > > tyleDeclaration","StyleSheetList","mapper","mapDOMNodes","visitTree","markT > > > > > > reeReadonly","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR", > > > > > > "WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODI > > > > > > FICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ > > > > > > ERR","exceptionMessages","DOMException","NodeList","DOMImplementation","Nod > > > > > > e","NamedNodeMap","AttrNodeMap","NotationNodeMap","EntityNodeMap","Element" > > > > > > ,"DocumentFragment","ProcessingInstruction","Document","CharacterData","Att > > > > > > r","Text","Comment","CDATASection","DocumentType","Notation","Entity","Enti > > > tyReference"] > > > > [node context] window === global: false > > > > So as you can see above, the window object does have all of the expected > > > props/method and it is not the same as node's global object. > > > > I hope that helps, and if you do find a sidecase please report it > > > (https://github.com/tmpvar/jsdom/issues) > > > > Oh, and for future reference there is a mailing list forjsdomspecific > > > issues/questions (http://groups.google.com/group/jsdom) > > > > -- Elijah -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en
