[MGNLDEMO-332] Stories page has invalid embedded JavaScript Created: 12/Feb/20  Updated: 07/Mar/23  Resolved: 07/Mar/23

Status: Closed
Project: Magnolia Demo Projects
Component/s: magnolia-travels
Affects Version/s: 1.4.1
Fix Version/s: None

Type: Bug Priority: Minor
Reporter: Richard Gange Assignee: Unassigned
Resolution: Cannot Reproduce Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
relation
is related to MGNLDEMO-347 Stories page has a broken version his... Closed
is related to MGNLDIFF-104 "Compare to previous version" does no... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled

 Description   

On the stories page there is some imbedded JavaScript. Line 317 of this page https://demopublic.magnolia-cms.com/stories.html.

<script language="javascript">

    (function () {
        const players = [];
        const iframes = document.getElementsByTagName('iframe');
        for (let i = 0; i < iframes.length; i++) {
            const iframe = iframes[i];
            const classList = iframe.classList;
            classList.add('opacity-zero');
            players[i] = new Vimeo.Player(iframe);

            players[i].on('timeupdate', function(event) {
                if (event.seconds > 0.1) {
                    classList.remove('opacity-zero');
                    classList.add('opacity-full');
                    players[i].off('timeupdate');
                }
            });
        } 
    })()
</script>

Tried several validators such as https://www.piliapp.com/javascript-validator/

When trying to compress the page I got this error.

[ERROR] HtmlCompressor: "missing ; after for-loop initializer" at line [6:19] during JavaScript compression:         for (let i = 0; i < iframes.length; i++) {
[ERROR] HtmlCompressor: "missing ; before statement" at line [6:48] during JavaScript compression:         for (let i = 0; i < iframes.length; i++) {
[ERROR] HtmlCompressor: "missing ) in parenthetical" at line [20:5] during JavaScript compression:     })()
[ERROR] HtmlCompressor: "syntax error" at line [20:6] during JavaScript compression:     })()
[ERROR] HtmlCompressor: "Compilation produced 4 syntax errors." at line [1:0] during JavaScript compression
Feb 12, 2020 2:18:56 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [default] in context with path [/pro-5.7-webapp] threw exception
org.mozilla.javascript.EvaluatorException: Compilation produced 4 syntax errors.
	at com.googlecode.htmlcompressor.compressor.YuiJavaScriptCompressor$DefaultErrorReporter.runtimeError(YuiJavaScriptCompressor.java:93)
	at org.mozilla.javascript.Parser.parse(Parser.java:402)
	at org.mozilla.javascript.Parser.parse(Parser.java:347)
	at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312)
	at com.yahoo.platform.yui.compressor.JavaScriptCompressor.<init>(JavaScriptCompressor.java:532)
	at com.googlecode.htmlcompressor.compressor.YuiJavaScriptCompressor.compress(YuiJavaScriptCompressor.java:53)
	at com.googlecode.htmlcompressor.compressor.HtmlCompressor.compressJavaScript(HtmlCompressor.java:946)
	at com.googlecode.htmlcompressor.compressor.HtmlCompressor.processScriptBlocks(HtmlCompressor.java:881)
	at com.googlecode.htmlcompressor.compressor.HtmlCompressor.processPreservedBlocks(HtmlCompressor.java:771)
	at com.googlecode.htmlcompressor.compressor.HtmlCompressor.compress(HtmlCompressor.java:220)
	at info.magnolia.html.compressor.filter.HtmlCompressorFilter.doFilter(HtmlCompressorFilter.java:70)

Generated at Mon Feb 12 05:18:37 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.