Forum Discussion
Feedback Collect
- 1 day ago
Due to iframe cross-domain security (CORS), Storyline cannot detect events inside an embedded MS Form, meaning it won't know when a learner clicks "Submit." I will not provide any more details as Jonathan already provided the most accurate explanation of this issue.
To work around this, customize the Thank You message in MS Forms to display a secret completion code (e.g., 2026COMPLETE). Instruct learners to paste this code into a Text Entry field in Storyline. A trigger then validates the entry to trigger the course completion command, which signals the Rise Continue block to unlock. Needless to say, if the learner does not submit the form, they will not see the code and will be unable to continue; conversely, entering the correct code is the only way to unlock the gate. This trick ensures the learner is still physically gated until they successfully submit the form and verify the code.
This solution does not use JavaScript on either the HTML web object or the Storyline side, only a valid embedded Microsoft Forms link.
Storyline example:
I've been giving this some thought today during my lunch break, MaithriKular178 Unfortunately, I don't think what you're asking for is possible in Rise.
When a website shows you content from another website (usually inside an iframe), the browser acts like a security guard. It says: "These two websites don't own each other, so neither one is allowed to spy on what the other is doing."
MS Forms lives on Microsoft's servers. Rise lives on Articulate's servers (or your LMS server).
So when your form sits inside Rise, Rise can see the iframe - but it can never look inside it. It can't tell whether the learner has started the form, finished it, or walked away for a cup of tea. The browser won't allow it.
I tried every workaround I could think of - listening for signals, watching for page changes, intercepting clicks - but they all hit the same wall. MS Forms doesn't send any signal when it's submitted, and we can't reach in to check ourselves.
The only way to make it work would be to involve Microsoft's own backend (using Power Automate) to tell Rise when a submission has happened - but that's a significant technical setup, requiring authentication, and isn't a quick fix.
Displaying the MS Form in Rise using a Code Block is relatively easy (see HTML below). You may need to add an activity or question after the form as a final requirement for completion of the course, though.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<style>
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; background: #ffffff; }
.frame-wrapper { width: 100%; height: 100vh; min-height: 600px; display: flex; flex-direction: column; }
iframe { flex: 1; width: 100%; border: none; display: block; }
</style>
</head>
<body>
<div class="frame-wrapper">
<iframe
src="PASTE_MS_FORMS_URL_HERE"
title="Form"
allowfullscreen
sandbox="allow-forms allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox"
loading="lazy"
></iframe>
</div>
</body>
</html>
Related Content
- 2 years ago
- 7 months ago
- 9 months ago