diff --git a/inactive-tab-title-changer.php b/inactive-tab-title-changer.php new file mode 100644 index 0000000..91483ee --- /dev/null +++ b/inactive-tab-title-changer.php @@ -0,0 +1,64 @@ + get_option('ittc_inactive_title', 'Please come back!'), + 'timeout' => get_option('ittc_timeout', 5000) + ); + wp_localize_script('ittc-main-js', 'ittcData', $data); +} +add_action('wp_enqueue_scripts', 'ittc_enqueue_scripts'); + +function ittc_register_settings() { + add_option('ittc_inactive_title', 'Please come back!'); + add_option('ittc_timeout', '5000'); + register_setting('ittc_options_group', 'ittc_inactive_title', 'strval'); + register_setting('ittc_options_group', 'ittc_timeout', 'intval'); +} +add_action('admin_init', 'ittc_register_settings'); + +function ittc_register_options_page() { + add_options_page('Inactive Tab Title Changer', 'Inactive Tab Title Changer', 'manage_options', 'ittc', 'ittc_options_page'); +} +add_action('admin_menu', 'ittc_register_options_page'); + +function ittc_options_page() { + ?> +
+

Inactive Tab Title Changer

+
+ + + + + + + + + + +
+ +
+
+ diff --git a/main.js b/main.js new file mode 100644 index 0000000..610bc96 --- /dev/null +++ b/main.js @@ -0,0 +1,14 @@ +let timer; + +document.addEventListener('visibilitychange', function() { + clearTimeout(timer); // Vorhandenen Timer löschen, wenn der Tab-Status geändert wird + + if (document.hidden) { + timer = setTimeout(function() { + document.originalTitle = document.title; + document.title = ittcData.inactiveTitle; + }, ittcData.timeout); + } else { + document.title = document.originalTitle || document.title; // Setze den Titel zurück, falls ein originalTitle vorhanden ist + } +}); \ No newline at end of file