-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathlinkHelper.js
More file actions
34 lines (29 loc) · 974 Bytes
/
linkHelper.js
File metadata and controls
34 lines (29 loc) · 974 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// linkHelper.js
const LinkHelper = {
/**
* Membuka URL di tab baru.
* Menggunakan chrome.tabs.create memastikan session (cookies) terbawa.
* @param {string} url - URL tujuan
* @param {boolean} active - Apakah tab langsung difokuskan? (Default: true)
*/
open: (url, active = true) => {
if (!url) return;
chrome.tabs.create({ url: url, active: active });
},
/**
* Mengubah elemen DOM biasa menjadi elemen yang bisa diklik.
* Berguna untuk tombol kustom atau elemen div/span.
* @param {HTMLElement} element - Elemen HTML
* @param {string} url - URL tujuan
*/
attach: (element, url) => {
if (!element || !url) return;
element.style.cursor = 'pointer';
element.title = "Buka di tab baru (Session terjaga)";
element.addEventListener('click', (e) => {
e.preventDefault(); // Mencegah perilaku default
e.stopPropagation(); // Mencegah event bubbling
LinkHelper.open(url);
});
}
};