Angular 4 app using IE 11, “Can't execute code from a freed script”

前端 未结 6 1697
失恋的感觉
失恋的感觉 2021-02-05 04:48

I have an Angular app which I think is version 4. IE 11 crashes during a login sequence in this app: \"Can\'t execute code from a freed script\". According to the IE console the

6条回答
  •  名媛妹妹
    2021-02-05 05:31

    The same error appeared to me as well in Internet Explorer 11 as I was trying to create a web component using Angulal Elements with Angular 8. As it states in the polyfill.ts file that gets created with the project, all zone checks must be included in a separate file which should be imported in the polyfill.ts file before the zone.js import. More specifically the quote from the polyfills.ts

    By default, zone.js will patch all possible macroTask and DomEvents
    user can disable parts of macroTask/DomEvents patch by setting following flags because those flags need to be set before zone.js being loaded, and webpack will put import in the top of bundle, so user need to create a separate file in this directory (for example: zone-flags.ts), and put the following flags into that file, and then add the following code before importing zone.js. import './zone-flags.ts';

    The flags allowed in zone-flags.ts are listed here. The following flags will work for all browsers.

    (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame

    (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick

    (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames

    in IE/Edge developer tools, the addEventListener will also be wrapped by zone.js with the following flag, it will bypass zone.js patch for IE/Edge

    (window as any).__Zone_enable_cross_context_check = true;

    Following the specific intstructions my polyfills file now includes:

    import './zone-flags.ts'; 
    import 'zone.js/dist/zone';
    

    and the file zone-flags.ts includes:

    (window as any).__Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
    (window as any).__Zone_disable_on_property = true; // disable patch onProperty such as onclick
    (window as any).__zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
    (window as any).__Zone_enable_cross_context_check = true;
    

    That finally removed the error from Internet Explorer 11

提交回复
热议问题