Удаление отдельного конкретного пользовательского скрипта из WKUserContentController - PullRequest
0 голосов
/ 14 марта 2019

Я использую addUserScript () для добавления пользовательского скрипта в WKUserContentController моего WKWebView.Я заметил, что даже если вызвать loadRequest (), сценарий остается.

В некоторых случаях мне может потребоваться удалить некоторые сценарии и добавить другие.Однако, похоже, что единственный способ удалить сценарии - это removeAllUserScripts ().Это очень неудобно, так как это означает, что мне придется удалить все скрипты, а затем повторно добавить те, которые я хотел сохранить.

Если кто-нибудь знает, как удалить конкретный скрипт (по имени, дескриптори т. д.), пожалуйста, дайте мне знать.

1 Ответ

1 голос
/ 16 марта 2019

Я не думаю, что «удаление сценария» является чем-то возможным (или даже значимым, если я правильно понимаю ваш вопрос).

«Сценарий» - это просто текст, который используется для предоставления среде Javascript определений таких элементов, как переменные, функции и т. Д. Два скрипта вполне могут переопределить друг друга (например, определить одну и ту же функцию foo ()), поэтому в зависимости от порядка их загрузки у вас будет другое конечное окружение (у вас есть только определение foo () последнего загруженного скрипта) ). Так что же означает «удалить скрипт» в этом случае?

Если вы действительно хотите избавиться от элементов вашей среды Javascript, вы всегда можете переопределить их так, чтобы они ничего не делали (например, переопределить foo () для {}). Но я думаю, что самый простой способ - просто больше не использовать foo ().

...