GaroonのHTMLポートレットでサーバーのAPIを呼び出し、JSONで受け取った値をブラウザに出力しています。
/----------------/
const main = () => {
initialize();
document
.querySelectorAll(“#moviemanager input[name=‘words’]”)
.forEach((input) => {
input.addEventListener(“change”, refresh);
});
button.onclick = async () => {
const words = ‘%’ + document.querySelector(
“#moviemanager input[name=‘words’]”
).value + ‘%’;
const encoded = encodeURI(words);
const url = baseUrl + ‘/’ + encoded;
const method = “GET”;
const headers = {};
const data = {};
const res = await garoon.base.proxy.send(
proxyCode,
url,
method,
headers,
data
);
const json = JSON.parse(res[0]);
const datalists = json.result.data;
// ここに挿入 //
// 変更された配列をrewriteTbodyに渡す
rewriteTbody(datalists);
const total = datalists.reduce((acc, cur) => acc + 1, 0);
document.querySelector(“#moviemanager_total”).textContent = total.toLocaleString();
};
};
/----------------/
さて、値にURLが含まれているので[添付画像の変更前]のように表示されてしまいます。
そこで上記のここに挿入というところに以下のようにanchorタグやbuttonタグを入れてみました。
const datalists = json.result.data;
/------------------/
// 新しい配列変数を準備
const modifiedDataLists = datalists.map(item => {
const modifiedItem ={…item, B0005: ‘<button onclick="location.href=’+ “'” + item.B0005 + “'” + ‘">ここ’};
return modifiedItem;
});
// 新しい配列変数を準備
const modifiedDataLists2 = modifiedDataLists.map(item => {
const modifiedItem2 = {…item, B0006: ‘そこ’};
return modifiedItem2;
});
// 変更された配列をrewriteTbodyに渡す
rewriteTbody(modifiedDataLists2);
// rewriteTbody(datalists);
/----------------------/
しかし、変更後のようにタグがそのまま表示されてしまいました。
そもそもJavaScriptをよくわかっていないのですが、リンクを貼ったページにしたいのですが、どうすればできるのでしょうか?