Мені цікаво, чи можна запускати JavaScript в браузері, щоб запобігти доступ до функцій, які зазвичай доступні для коду JavaScript, що працює на сторінці HTML.
Наприклад, скажімо, я хочу надати API JavaScript для кінцевих користувачів, щоб вони визначали обробники подій, які будуть запускатися, коли трапляються "цікаві події", але я не хочу, щоб ці користувачі мали доступ до властивостей та функцій window
об'єкта. Чи я в змозі це зробити?
У найпростішому випадку скажімо, я хочу завадити користувачам дзвонити alert
. Я думаю про пару підходів:
- Перевизначити
window.alert
глобально. Я не думаю, що це був би правильний підхід, оскільки інший код, який працює на сторінці (тобто речі, не авторизовані користувачами у своїх обробниках подій), може захотіти використовуватиalert
. - Надішліть на обробку сервера код обробника події. Я не впевнений, що відправлення коду на сервер для обробки - це правильний підхід, оскільки обробники подій повинні запускатися в контексті сторінки.
Можливо, рішення, де сервер обробляє визначену користувачем функцію, а потім генерує зворотний виклик, який буде виконуватися клієнтом? Навіть якщо такий підхід працює, чи є кращі способи вирішити цю проблему?
while (1) {}
--- він просто зависає. Так самоa=[]; while (1) { a=[a,a]; }
.