我成功地使用了一个不可见的UIWebView作为Javascript片段的执行引擎.与what certain pages suggest相反,它不需要可见.如果宣布死亡只是作为
UIWebView* myJSExecutor = [UIWebView new];
不仅它执行任何stringByEvaluatingJavaScriptFromString:抛出它,它甚至起泡alert()到桌面! (并不是说你想经常做的事)免责声明:仅在iOS 5上测试过
现在,我有另一个通常可见的UIWebView与正常的网页内容,我希望它暂停JavaScript执行:这是停止作用于计时器和DOM事件.我认为用stopLoading和设置delegate = nil的removeFromSuperview就可以了.但是,不,只要我将UIWebView添加回某些可见视图,我就可以看到计时器一直在运行.
我理解我的要求的精神分裂症.我很欣赏它一方面在后台工作(与一些观察相反),但另一方面我想暂停它.但我仍然想问是否有任何,甚至是私人方式暂停它. Safari for iOS能够在后台暂停浏览器选项卡. Chrome for iOS不能,这可能是一个悲伤的负面证据:(
解决方法:
如果你正在寻找疯狂,我有一个想法.
我知道暂停JavaScript的唯一方法是显示警报,确认,提示或发送async = false的ajax请求.
隐藏UIWebView时是否隐藏警报?如果是这样,您可以在希望冻结时发送警报.当您再次显示视图时,用户将不得不将其关闭:
[web stringByEvaluatingJavaScriptFromString:@"alert('Press OK to continue...')"];
或许你可以通过编程方式解雇它.我相信你会同意这整个建议都有麻烦,但这是一个想法.
原文地址:https://codeday.me/bug/20190831/1777528.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。