Estoy tratando de obtener un atributo personalizado que puse en mi etiqueta de secuencia de comandos:
<script type="text/javascript" src="https://.../mysource.js" customdata="some_value"></script>Estoy usando el siguiente código para que funcione en IE:
document.currentScript = document.currentScript || (function () { const field = document.getElementsByTagName('script'); return field[field.length - 1]; })(); // document.currentScript.getAttribute('customdata');Pero luego recibo el siguiente error cuando intento establecer un nuevo valor en document.currentScript.
TypeError no capturado: no se puede establecer la propiedad currentScript de # <Document> que solo tiene un getter
Solo resuelvo esto cuando estoy usando document.currentScript directamente, pero luego no puedo usarlo en navegadores más antiguos.
Creé otra variable para contener el valor del documento y luego funcionó y no se muestran errores.
Si document.currentScript existe, es una propiedad de solo lectura. Así que solo intente configurarlo si no existe.
if (!document.currentScript) { document.currentScript = (function() { const field = document.getElementsByTagName('script'); return field[field.length - 1]; })(); }