[M1 Mac, MacOS Ventura 13.3.1]
JavaScript内で生成した変数を他のプログラムで使えるようにするのは、C++ユーザーにとって最初はなかなか難易度が高いです。セキュリティ対策のため、JavaScript(非Node.js)はローカルファイルを作成して保存することができません。
今回はBlobオブジェクトを使ってファイル化しダウンロードするようにしました。
ChromeやEdgeでは自動的にダウンロードされ、Safariでは許可ボタンのクリックを経てダウンロードされます。つまりSafariでは自動化不可です。
ただ、モーダルダイアログにある許可ボタンの座標が分かれば、最近紹介したmacOSのApplication Servicesを使って自動クリックできそうな感じではあります。ややこしそうなので今回はやめておきます。
製作中のBBSブラウザで使用しているFl_WebViewはダウンロード機能を実装していないため、変数をファイル化してもダウンロードはできません。
// クリックしたaタグを含むpタグのIDを取得、ファイル化してダウンロード
function getID(element) {
let id = element.closest('p').id;
console.log("id = " + id);
let data = new Blob([id], { type: 'text/plain' });
let link = document.createElement('a');
link.href = URL.createObjectURL(data);
link.download = 'test.txt';
link.click();
}