PageSourceSearch

https://happydrug.co.jp/assets/front/form/itemset.js?ts=202607170100

js happydrug.co.jp collected 2026-10-05 19:05:14 UTC 4,845 bytes, 160 lines download raw bytes

1const escapeHtml = (str) => {
2    if (!str) return str;
3    str = str.replace(/&/g, '&');
4    str = str.replace(/</g, '&lt;');
5    str = str.replace(/>/g, '&gt;');
6    str = str.replace(/"/g, '&quot;');
7    str = str.replace(/'/g, '&#39;');
8    return str;
9}
10
11//  hiddenセット
12const setHddenItem = (selectors, params) => {
13    selectors.forEach((selector) => {
14        let text = params[selector];
15        if (text === undefined || text === null) {
16            text = '';
17        }
18        document.forms.sendForm.insertAdjacentHTML('beforeend', '<input type="hidden" name="'+selector+'" value="'+text+'">');
19    });
20}
21
22// チェックボックスグループ hiddenセット
23const setHiddenCheckboxGroup = (selector, values) => {
24    if (!Array.isArray(values)) {
25        values = values ? [values] : [];
26    }
27
28    values
29        .filter(value => value != null && value !== '')
30        .forEach(value => {
31            document.forms.sendForm.insertAdjacentHTML(
32                'beforeend',
33                `<input type="hidden" name="${selector}[]" value="${escapeHtml(value)}">`
34            );
35        });
36};
37
38//  テキスト項目確認画面用表示
39const viewConfirmTextItem = (selectors, params) => {
40    selectors.forEach((selector) => {
41        let text = params[selector];
42        if (text === undefined || text === null) {
43            text = '';
44        }
45        if (document.querySelector('#'+selector)) {
46            document.querySelector('#'+selector).innerHTML = escapeHtml(text);
47        }
48    });
49}
50
51//  テキストエリア項目確認画面用表示
52const viewConfirmTextAreaItem = (selectors, params) => {
53    selectors.forEach((selector) => {
54        let text = params[selector];
55        if (text === undefined || text === null) {
56            text = '';
57        }
58        if (document.querySelector('#'+selector)) {
59            text = escapeHtml(text);
60            text = text.replace(/\r\n/g, "<br />");
61            text = text.replace(/(\n|\r)/g, "<br />");
62            document.querySelector('#'+selector).innerHTML = text;
63        }
64    });
65}
66
67//  選択肢項目表示
68const viewConfirmChoicesItem = (selectors, params) => {
69    selectors.forEach((selector) => {
70        let text = params[selector];
71        if (text === undefined || text === null) {
72            text = '';
73        }
74        if (document.querySelector('#'+selector)) {
75            document.querySelector('#'+selector).innerHTML = text;
76        }
77    });
78}
79
80// チェックボックス確認画面表示
81const viewConfirmCheckboxGroup = (selector, params) => {
82    const values = params[selector] || [];
83
84    values.forEach((value, index) => {
85        const target = document.getElementById(`${selector}${index + 1}`);
86        if (target) {
87            target.textContent = value ?? '';
88        }
89    });
90};
91
92//  値セット
93const setValue = (selectors, params) => {
94    selectors.forEach((selector) => {
95        let text = params[selector];
96        if (text === undefined || text === null) {
97            text = '';
98        }
99        if (document.querySelector('#'+selector)) {
100            document.querySelector('#'+selector).value = text;
101        }
102    });
103}
104
105//  選択セット
106const setChoice = (selectors, params) => {
107    selectors.forEach((selector) => {
108        let text = params[selector];
109        if (text === undefined || text === null) {
110            text = '';
111        }
112        let storeType = document.querySelectorAll('input[name="'+selector+'"]');
113        if (storeType) {
114            storeType.forEach(radio => {
115                if (radio.value === text) {
116                    radio.checked = true;
117                }
118            })
119        }
120    });
121}
122//  selectタグ選択セット(multipleは非対応)
123const setSelectChoice = (selectors, params) => {
124    selectors.forEach((selector) => {
125        let text = params[selector];
126        if (text === undefined || text === null) {
127            text = '';
128        }
129        let element = document.querySelector('#'+selector+' option[value="'+text+'"]');
130        if (element) {
131            element.selected = true;
132        }
133    });
134}
135
136// 単一チェックボックスセット
137const setCheckbox = (selectors, params) => {
138    selectors.forEach((selector) => {
139        let isChecked = params[selector];
140        if (isChecked === undefined) {
141            isChecked = false;
142        }
143        let checkbox = document.querySelector('#' + selector);
144        if (checkbox) {
145            checkbox.checked = isChecked;
146        }
147    });
148}
149
150// チェックボックスグループ選択セット
151const setCheckboxGroup = (selector, values) => {
152    if (!Array.isArray(values)) {
153        values = values ? [values] : [];
154    }
155
156    document.querySelectorAll(`input[name="${selector}[]"]`).forEach(checkbox => {
157        checkbox.checked = values.includes(checkbox.value);
158    });
159}
160

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.