From d565f538fc9d60db70e7618b931e229ea8d26ba3 Mon Sep 17 00:00:00 2001 From: kujirahand Date: Wed, 23 Oct 2024 21:33:09 +0900 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=93=81=E3=81=AE=E8=A6=81=E7=B4=A0?= =?UTF-8?q?=E3=81=A7=E3=80=8C=E3=83=92=E3=83=B3=E3=83=88=E5=8F=96=E5=BE=97?= =?UTF-8?q?=E3=80=8D=E3=80=8C=E3=83=92=E3=83=B3=E3=83=88=E8=A8=AD=E5=AE=9A?= =?UTF-8?q?=E3=80=8D=E3=81=A8=E3=80=8C=E3=83=9D=E3=82=B1=E3=83=83=E3=83=88?= =?UTF-8?q?=E5=8F=96=E5=BE=97=E3=80=8D=E3=80=8C=E3=83=9D=E3=82=B1=E3=83=83?= =?UTF-8?q?=E3=83=88=E8=A8=AD=E5=AE=9A=E3=80=8D=E3=81=A8=E3=80=8C=E3=83=87?= =?UTF-8?q?=E3=83=BC=E3=82=BF=E5=B1=9E=E6=80=A7=E5=8F=96=E5=BE=97=E3=80=8D?= =?UTF-8?q?=E3=80=8C=E3=83=87=E3=83=BC=E3=82=BF=E5=B1=9E=E6=80=A7=E8=A8=AD?= =?UTF-8?q?=E5=AE=9A=E3=80=8D=E3=82=92=E8=BF=BD=E5=8A=A0=20#1765?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugin_browser_dom_basic.mts | 59 ++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/src/plugin_browser_dom_basic.mts b/src/plugin_browser_dom_basic.mts index 2f3283b8..5175e0c6 100644 --- a/src/plugin_browser_dom_basic.mts +++ b/src/plugin_browser_dom_basic.mts @@ -318,6 +318,65 @@ export default { return dom.style[style] } }, + 'データ属性取得': { // @DOMのdata-PROPの値を取得 // @でーたぞくせいしゅとく + type: 'func', + josi: [['の', 'から'], ['を']], + fn: function (dom: any, prop: any, sys: any) { + dom = sys.__query(dom, 'データ属性取得', true) + if (!dom) { return '' } + return dom.dataset[prop] // dom.getAttribute('data-' + prop) と同じ + } + }, + 'データ属性設定': { // @DOMのdata-PROPに値Vを設定 // @でーたぞくせいせってい + type: 'func', + josi: [['の'], ['に', 'へ'], ['を']], + fn: function (dom: any, prop: any, val: any, sys: any) { + dom = sys.__query(dom, 'データ属性設定', true) + if (!dom) { return '' } + dom.dataset[prop] = val // dom.setAttribute('data-' + prop, val) と同じ + } + }, + 'ポケット取得': { // @DOMのポケット(data-pocket属性)の値を取得(エンコードされるので辞書型や配列も取得できる) // @ぽけっとしゅとく + type: 'func', + josi: [['の', 'から']], + fn: function (dom: any, sys: any) { + dom = sys.__query(dom, 'ポケット取得', true) + if (!dom) { return '' } + try { + return JSON.parse(dom.dataset.pocket) + } catch (e) { + console.log('[なでしこ] ポケット取得のJSONデータの不正:', e) + return dom.dataset.pocket + } + } + }, + 'ポケット設定': { // @DOMのポケット(data-pocket属性)に値Vを設定(エンコードされるので辞書型や配列も設定できる) // @ぽけっとせってい + type: 'func', + josi: [['に', 'へ'], ['を']], + fn: function (dom: any, val: any, sys: any) { + dom = sys.__query(dom, 'ポケット設定', true) + if (!dom) { return '' } + dom.dataset.pocket = JSON.stringify(val) + } + }, + 'ヒント取得': { // @DOMのヒント(title属性)の値を取得 // @ひんとしゅとく + type: 'func', + josi: [['の', 'から']], + fn: function (dom: any, sys: any) { + dom = sys.__query(dom, 'ヒント取得', true) + if (!dom) { return '' } + return dom.getAttribute('title') + } + }, + 'ヒント設定': { // @DOMのヒント(title属性)に値Vを設定 // @ひんとせってい + type: 'func', + josi: [['に', 'へ'], ['を']], + fn: function (dom: any, val: any, sys: any) { + dom = sys.__query(dom, 'ヒント設定', true) + if (!dom) { return '' } + dom.setAttribute('title', JSON.stringify(val)) + } + }, 'DOM要素作成': { // @DOMにTAGの新規要素を作成 // @DOMようそさくせい type: 'func', josi: [['の', 'を']],