gpt4 book ai didi

javascript - 如何从 inputTextarea 读取文本作为 javascript 对象

转载 作者:行者123 更新时间:2023-12-03 00:23:11 24 4
gpt4 key购买 nike

我想将java脚本对象结构作为文本输入输入到inputTextarea中,并且我想要一个var将其读取为对象。我的对象结构如下所示。我可以直接在我的 xhtml 页面中将其作为 var obj={ onchange: ... 给出,而不是在 inputTextarea 中给出,但是我不想要。因为解析xml标签也有困难,否则会抛出一些标签错误。是否可以将 inputTextarea 中的文本读取为 var 对象,而不是读取为 string

{
onchange: function(){
console.log("I been changed now!")
},
validate: function(obj){
console.log("I be validatin' now!")
},
elements: {
"list": {
menu: [{
caption: "Append an <item>",
action: Xonomy.newElementChild,
actionParameter: "<item/>"
}]
},
"item": {
menu: [{
caption: "Add @label=\"something\"",
action: Xonomy.newAttribute,
actionParameter: {name: "label", value: "something"},
hideIf: function(jsElement){
return jsElement.hasAttribute("label");
}
}, {
caption: "Delete this <item>",
action: Xonomy.deleteElement
}, {
caption: "New <item> before this",
action: Xonomy.newElementBefore,
actionParameter: "<item/>"
}, {
caption: "New <item> after this",
action: Xonomy.newElementAfter,
actionParameter: "<item/>"
}],
canDropTo: ["list"],
attributes: {
"label": {
asker: Xonomy.askString,
menu: [{
caption: "Delete this @label",
action: Xonomy.deleteAttribute
}]
}
}
}
}
}

最佳答案

据我了解,您需要将文本区域内容作为 JavaScript 对象读取。

如果textarea内容是有效的JSON,您可以通过调用JSON.parse将textarea内容转换成。

如果文本区域内容不是有效的 JSON,而是某种任意 JavaScript 对象表示形式,您可以使用 eval 将其转换为 JavaScript 对象。但是,请考虑到使用 eval 是一个安全问题,除非输入来自受信任的来源,否则不应使用它。

const textArea = document.getElementById('demo');

// this will work only if textarea content is a valid JSON
// const myObject = JSON.parse(textArea.textContent);

// this following is insecure, use on your own risk
const myObject = eval(`(${textArea.textContent})`);

console.log(typeof myObject);
console.log(myObject);
<textarea id="demo">
{ a: 1 }
</textarea>

关于javascript - 如何从 inputTextarea 读取文本作为 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218446/

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