UIWebView: Могу ли я отключить предупреждение JavaScript () внутри любой веб-страницы? - PullRequest
15 голосов
/ 04 августа 2010

Я использую UIWebView для загрузки URL.

Внутри страницы этого URL он использует alert("whatever msg") в качестве JavaScript.Мой UIWebView откроет окно и покажет это предупреждающее сообщение.

Есть ли способ отключить всплывающее окно такого типа или окно предупреждения JavaScript?

Ответы [ 3 ]

19 голосов
/ 04 августа 2010

Добавьте это после того, как ваше веб-представление загрузит его содержимое

[MyWebView stringByEvaluatingJavaScriptFromString:@"window.alert=null;"];
12 голосов
/ 04 августа 2010

Вы можете связать window.alert с другой функцией.Итак:

window.alert = function() {
  //does nothing so effectively "disables" alert
};

Убедитесь, что вы делаете это, прежде чем вызывать какие-либо оповещения.Приятно то, что вы можете настроить способ отображения сообщений для пользователя.Таким образом, вы можете переопределить window.alert для входа в консоль (для целей отладки) или вы можете отобразить его на странице (с лайтбоксом или чем-то подобным).

1 голос
/ 08 января 2015

Поскольку UIWebView переводит все предупреждения Javascript в собственный UIAlertViews, довольно просто заблокировать его на собственном конце. Рассматривая UIAlertView.h, существует только один публичный метод для отображения предупреждения, который удобно называть: - (void)show;.

@interface UIAlertView (Blocker)
@end

#import "UIAlertView+Blocker.h"

@implementation UIAlertView (Blocker)

- (void)show {
   return;
}
@end

Вы можете найти ответ здесь: https://stackoverflow.com/a/21698251/2377378

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...