I just found out that the PsychoJS library have two versions, one for modern browsers (using modules) and one for legacy browsers (i.e. Internet Explorer). This is also the reason why PsychoPy generates two scripts, e.g. stroop.js and stroopNoModule.js.
I have been working exclusively on the stroop.js-like version of the library (the stroopNoModule.js-like script is similar to the other script, but lacks a few things I added manually). I was wondering what that would mean for a subject to use Internet Explorer. Would they still be able to actually take the experiment? I can test it myself since I am working on a Mac.
Yes, the NoModule version is for older browsers like IE and changes you make to the main script won’t be reflected there. As with Python scripts we strongly recommend that you insert your custom code into Code Components in Builder rather than hacking the script. It also means that if you do make further changes to your study you can do so in Builder without having to redo all the hacks.
Thanks for the tip, however some of the things I added in the code could not have been added through the Code Component, so I had to work on the script directly.
So the only solution to have the two script version same to one another is just to use the code component? Is there a way to fix this by hand?
Among other things, I wanted to have a text input field in one of the routines and I felt like it was just easier to work on the actual script rather than figure out where each code chunk should go in the experiment (e.g., at the beginning/edn of the experiment/the routine, at each frame of the routine).
So I can just copy and paste the code from the other script? Is the code itself the same (and the difference is just “under the hood”)?
By the way, I just tested the experiment on both Microsoft Internet Explore (MIE) and Microsoft Edge (ME) and neither works. When using MIE, a nice error message says that PsychoJS does not support the browser. When using ME, the screen is stuck on the “initializing experiment…” message. (It would be nice to have the same error message for both browsers, just so that subjects using either know about it.)
This is just to let you know that the NoModule.js file is not working anyway, so it is not an issue right now (but it might be if/when MIE will be supported).
In Chrome, if I try to run the nomodule version of the script, I get a ‘PsychoJS is not defined’ error - from looking at the code the noModule file looks exactly the same as the regular javascript code but is just missing the import statements (as expected) so errors when it tries to declare:
var psychoJS = new PsychoJS({
debug: true
});.
This also happens in Safari (see below) Should the missing modules be loaded some other way?