Spaces:
Running
Running
Update src/addons/addons/save-to-google/userscript.js
Browse files
src/addons/addons/save-to-google/userscript.js
CHANGED
@@ -1,50 +1,38 @@
|
|
1 |
export default async ({ addon, console, msg }) => {
|
2 |
-
// 永続的に対象要素が出現するのを待つループ
|
3 |
while (true) {
|
4 |
-
//
|
5 |
-
const
|
6 |
'div[class*="menu-bar_file-group"] > div:last-child:not(.sa-record)',
|
7 |
{ markAsSeen: true }
|
8 |
);
|
9 |
|
10 |
-
//
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
button.className = "sa-custom-modal-button " + targetElem.className;
|
15 |
-
button.textContent = msg("open-modal"); // ローカライズされた文字列
|
16 |
-
button.style.cursor = "pointer";
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
);
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
<button id="modal-ok-button">${msg("ok")}</button>
|
32 |
-
</div>
|
33 |
-
`;
|
34 |
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
}
|
40 |
|
41 |
-
|
42 |
-
|
43 |
-
closeButton.addEventListener("click", () => remove());
|
44 |
-
});
|
45 |
|
46 |
-
|
47 |
-
|
48 |
-
}
|
49 |
}
|
50 |
};
|
|
|
1 |
export default async ({ addon, console, msg }) => {
|
|
|
2 |
while (true) {
|
3 |
+
// 指定したセレクタの要素を待機
|
4 |
+
const elem = await addon.tab.waitForElement(
|
5 |
'div[class*="menu-bar_file-group"] > div:last-child:not(.sa-record)',
|
6 |
{ markAsSeen: true }
|
7 |
);
|
8 |
|
9 |
+
// ボタン要素を作成
|
10 |
+
const buttonElem = document.createElement("button");
|
11 |
+
buttonElem.textContent = msg("モーダルを表示"); // ボタンに表示するテキスト
|
12 |
+
buttonElem.classList.add("sa-modal-button"); // 任意のクラス(スタイル用)
|
|
|
|
|
|
|
13 |
|
14 |
+
// クリック時の処理:モーダルを作成してHTMLを表示
|
15 |
+
buttonElem.addEventListener("click", () => {
|
16 |
+
const { backdrop, container, content, closeButton, remove } = addon.tab.createModal(
|
17 |
+
msg("モーダルタイトル"),
|
18 |
+
{ isOpen: true, useEditorClasses: true }
|
19 |
+
);
|
|
|
20 |
|
21 |
+
// モーダル内に任意のHTMLコンテンツを設定
|
22 |
+
content.innerHTML = `
|
23 |
+
<h1>モーダルの見出し</h1>
|
24 |
+
<p>これはHTMLコンテンツを含むモーダルの例です。</p>
|
25 |
+
`;
|
|
|
|
|
|
|
26 |
|
27 |
+
// 背景や閉じるボタンをクリックしたときにモーダルを閉じる
|
28 |
+
backdrop.addEventListener("click", remove);
|
29 |
+
closeButton.addEventListener("click", remove);
|
30 |
+
});
|
|
|
31 |
|
32 |
+
// 指定の要素の親要素にボタンを追加(メニューバーに配置)
|
33 |
+
elem.parentElement.appendChild(buttonElem);
|
|
|
|
|
34 |
|
35 |
+
// 同じ処理を重複して実行しないよう、少し待ってからループを再開
|
36 |
+
await new Promise((resolve) => setTimeout(resolve, 1000));
|
|
|
37 |
}
|
38 |
};
|