【发布时间】:2020-01-12 17:49:27
【问题描述】:
我有一个 InDesign 脚本的 HTML 下拉列表,当我将 JSON 从文件中拉入时,它会以对象 Object 的形式返回。我无法弄清楚我做错了什么。
我在这里尝试了很多答案,但没有一个可以使用我的代码。
我的 HTML:
<h4>Design Tools</h4>
<select id="swatchNumber" onchange="swatchIndex()" class="custom-select"></select>
我的 jsx:
function swatchIndex() {
var doc, swatches, json, n, l, swatch;
doc = app.activeDocument;
swatches = doc.swatches;
json = [];
l = swatches.length;
for (n = 0; n < l; n++) {
swatch = swatches[n];
json[n] = '"' + n + '": {' +
'"name": "' + swatch.name + '"}'
}
// prepare the JSON as a string
json = '{' + json.join(',') + '}';
return json;
}
我的javascript:
var callBack = function (result) {
try {
var swatchesConv = JSON.parse(result);
var select = document.createElement('SELECT');
select.name="swatchNumber";
select.id="swatchNumber";
document.body.appendChild(select);
Object.keys(swatchesConv).forEach(function(result){
document.getElementById('swatchNumber').innerHTML +='<option value="'+result+'">'+swatchesConv[result]+'</option>'
})
alert(result);
} catch (e) { alert(e.message); }
// alert("Wrong");
}
csInterface.evalScript('swatchIndex()', callBack);
弹出到我的警报中的实际 JSON(结果): {“0”:{“名称”:“无”},“1”:{“名称”:“注册”),“2”:{“名称”:“论文”},“3”:{“名称” ”: “黑色”}}
当我加载应用程序时,我收到弹出 JSON 的警报,但下拉列表显示正确的数量,但每个索引只显示对象对象
【问题讨论】:
标签: javascript object select dropdown option