With my miserable JS knowledge I understand that the page originally has a line like this:
and then href parameter is changed via JS. Both SF and Deepcrawl are not able to see that change. Thus, all the pages have the same canonical.
The only solution I could think of is prerendering the page and using escaped fragments. In that case, does Google take canonical parameters from the original page or from the HTML snapshots? Anyone with this experience?