获取 currentScript 返回 typeError
2022-01-31
239
我试图获取放在脚本标记上的自定义属性:
<script type="text/javascript" src="https://.../mysource.js" customdata="some_value"></script>
我使用以下代码,以便它可以在 IE 上运行:
document.currentScript =
document.currentScript ||
(function () {
const field = document.getElementsByTagName('script');
return field[field.length - 1];
})();
// document.currentScript.getAttribute('customdata');
但是,当我尝试在 document.currentScript 上设置新值时,我收到以下错误。
Uncaught TypeError: Cannot set property currentScript of # < Document > which has only a getter
我仅在直接使用 document.currentScript 时解决了这个问题,但是我无法在旧版浏览器上使用。
2个回答
如果
document.currentScript
存在,则它是一个只读属性。因此,只有在不存在时才尝试设置它。
if (!document.currentScript) {
document.currentScript = (function() {
const field = document.getElementsByTagName('script');
return field[field.length - 1];
})();
}
Barmar
2022-01-31
我创建了另一个变量来保存来自文档的值,然后它起作用了并且没有显示任何错误。
heliosk
2022-02-03