将随机数添加到脚本标签

2023-12-12

我想向动态构造的脚本标记添加一个随机数。下面的代码不会向生成的脚本标签添加任何随机数。有人知道如何添加随机数吗?

var _wss = document.createElement('script');
_wss.nonce = 'random-string';
_wss.type = 'text/javascript';
_wss.charset = 'utf-8';
_wss.async = true;
_wss.src = "url";
var __wss = document.getElementsByTagName('script')[0];
__wss.parentNode.insertBefore(_wss, __wss);

结果是:

<script type="text/javascript" charset="utf-8" async src="url"></script>

预期结果:

<script nonce="random-string" type="text/javascript" charset="utf-8" async src="url"></script>

Thanks!


我在这个 stackoverflow 页面上运行了你的代码,它起作用了。

我认为您遇到的问题是您希望将随机数视为脚本标记的属性,但它仅在 javascript 中作为属性提供。

标签看起来像这样

<script type="text/javascript" charset="utf-8" async="" src="url"></script>

但如果你跑

console.log(document.getElementsByTagName('script')[0].nonce)

它会显示"random-string"

原因是安全。看https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/nonce#accessing_nonces_and_nonce_hiding。具体来说

出于安全原因,隐藏了随机数内容属性(空的 将返回字符串)。

nonce 属性是访问 nonce 的唯一方法:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将随机数添加到脚本标签 的相关文章