After an upgrade, some fragments get broken because JS strict mode seems to be enforced now
knowledge-article-header-disclaimer-how-to
knowledge-article-header-disclaimer
legacy-article
learn-legacy-article-disclaimer-text
Issue
- We do not declare JS variables when developing fragments. After an upgrade, these fragments stop working properly.
Environment
- Upgrades to the following Patch Releases: 2023.Q3.5+, 2023.Q4.1+
- Upgrades to 2024.Q1 or newer Quarterly Release
Resolution
- This is a consequence of using JavaScript modules in fragment scripts. Modules automatically enforce strict mode, preventing undeclared variables from being used.
- This behavior was introduced by LPS-202182.
- The previous code was relying on global variables creation which is a bad practice.
- The solution in this case would be to modify the code to declare all variables.
- However, a temporary workaround has been developed to give more time for this adoption:
- A new setting (
true
by default) is available in Instance Settings > Page Fragments > Javascript > Javascript Module Enabled.
- Unchecking that setting will make those fragments work again.
- As mentioned before, be aware that this setting will be removed in future versions. Users will no longer have the option to disable
type="module"
.
- If you cannot see that setting, you may want to ask for a hotfix including LPD-33141.
did-this-article-resolve-your-issue