Forum Discussion

ZsoltOlah's avatar
ZsoltOlah
Super Hero
10 days ago

Sandbox?

Hi all,

For our team internally, I've built an "add-on" called RiseWise, which adds tracking functionality so we can see in the LMS how many times they opened an accordion, viewed a step, what 1-5 scale smile face they selected for satisfaction, how many times it took people to answer a question correctly, what incorrect answers they selected most, etc. This is for actionable data collection. 

I wanted to see if we can bring this into Rise now without the extra step, but I ran into something fundamental. It looks like the iframe output of the code is sandboxed. Is that correct? Meaning it can't communicate with external elements? Or, am I missing something? 

What I'd love to see to make Rise more effective, not just more engaging: 

  • Course-wide JS/CSS load. Available when the course load is low and can communicate with all elements. CSS . JS can access elements, blocks, and other variables in blocks. 
  • Then, we can have custom code/html/css in content blocks to their specific jobs. Code blocks would have access to each other, as well as the main JS/CSS loaded. 
  • Content blocks can also communicate with Storyline or other interactive elements. Either directly or through a bridge API, postMessage, etc.
  • In short, I'd love to have more control over the whole thing as well as individual pages/blocks. 

6 Replies

  • Yes, I would love those capabilities as well.

    The Code Block is sandboxed, but it can load external libraries (just tested with script tag, and with using JS to inject a script tag). I can add global variables to the top window context so other Code Blocks could access it, but since the Code Block runs in a single lesson, to make sure a user resuming would load the code, you'd currently have to add a Code Block to each lesson.

    Being able to add a Code Block (or similar) to the whole course (not just a lesson) would open up a lot of possibilities for extension and customization by easily loading global custom libraries and code.

    Adding a "Rise API" to interact internally would be pretty amazing in combination.

  • Thanks ZsoltOlah​ ! Really appreciate the level of detail shared here. So many ideas for our team to explore. As noted above, Code blocks themselves are sandboxed, but we'll certainly continue to evaluate the feasibility of broader customization options.

    • ZsoltOlah's avatar
      ZsoltOlah
      Super Hero

      Thanks, Kyle! The custom feature, including block, is def a good step in the right direction. It opens up Rise more to meaningful,  customized, and integrated interactions beyond the already strong content presentation layer. As you can see there are bunch of home-grown and semi-commercial workarounds to solve this, so you might as well take advantage of doing it yourself. There's a market for that.   

  • I just wanted to chime in - everything ZsoltOlah​ wrote is like a major step forward in designing using Rise (I tend to use Rise only in very simple courses, and if we had all of this mentioned, I'd switch baaadly to the Rise developing).

    Course-wide CSS and JS is like a must have :) I'd also love to manipulate things outside the iframe, as when you have access through JS to every DOM element, you can do... I guess almost everything. ;)