gpt4 book ai didi

javascript - 将 JS 对象插入到脚本标签中,无需抓取语法

转载 作者:行者123 更新时间:2023-12-03 01:04:28 25 4
gpt4 key购买 nike

期望的输出

<script type="text/javascript">
var = {
//myobject
}
</script>

目前的想法

var fileRef = document.createElement('script');
fileRef.setAttribute('type','text/javascript');
var = { //blahblahblah }
fileRef.setAttribute('innerHTML', var); << this is wrong
document.head.appendChild(fileRef);

理想情况下,我需要使用类似于innerHTML的东西将变量注入(inject)脚本标签内

这是 Janky,但客户要求优化内联编辑对象,所以我的双手被束缚

最佳答案

如果您唯一想做的就是将 JavaScript 对象添加到全局命名空间,并且其中的内容严格限制为字符串、数字和 bool 值,那么您可以通过以下方式安全地做到这一点:

let userEnteredString = '{"foo": "bar"}';
window[keyName] = JSON.parse(userEnteredString);

如果它可以包含上述类型的文字以外的值,那么您可以使用不安全的 eval 方法(不推荐!):

let existingValue = "bar";
let userEnteredString = '{"foo": existingValue}';
window[keyName] = eval(`(${userEnteredString})`); // not safe, only use this when
// absolutely needed

请注意,这两个代码段不会修改任何 script 标记,尽管在任何其他相关脚本标记之前执行时它们将具有相同的效果。

关于javascript - 将 JS 对象插入到脚本标签中,无需抓取语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52471914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com