From 7691d1b90e626e979fe68e2df06126da89d58f71 Mon Sep 17 00:00:00 2001 From: Andy Stewart Date: Wed, 18 Mar 2020 21:11:42 +0800 Subject: [PATCH] Make get_focus_text and set_focus_text support Telegram Web's input widget. --- core/js/get_focus_text.js | 6 +++++- core/js/set_focus_text.js | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/core/js/get_focus_text.js b/core/js/get_focus_text.js index cbaedc4..636e019 100644 --- a/core/js/get_focus_text.js +++ b/core/js/get_focus_text.js @@ -5,6 +5,10 @@ if (activeElement && inputs.indexOf(activeElement.tagName.toLowerCase()) !== -1) { return activeElement.value; } else { - return undefined; + if (window.location.href.startsWith("https://web.telegram.org/") && activeElement.hasAttribute("placeholder")) { + return activeElement.textContent; + } else { + return undefined; + } } })(); diff --git a/core/js/set_focus_text.js b/core/js/set_focus_text.js index f60a7b5..a6f3744 100644 --- a/core/js/set_focus_text.js +++ b/core/js/set_focus_text.js @@ -1,7 +1,12 @@ (function() { let newText = "%1"; const activeElement = document.activeElement; - activeElement.value = decodeURIComponent(escape(window.atob(newText))); + + if (window.location.href.startsWith("https://web.telegram.org/")) { + activeElement.textContent = decodeURIComponent(escape(window.atob(newText))); + } else { + activeElement.value = decodeURIComponent(escape(window.atob(newText))); + } // Note: simulate input event on active element after set focus text. // Some website need input event before submit form.