编程语言
首页 > 编程语言> > 暂停UIWebView中的Javascript执行

暂停UIWebView中的Javascript执行

作者:互联网

我成功地使用了一个不可见的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...')"];

或许你可以通过编程方式解雇它.我相信你会同意这整个建议都有麻烦,但这是一个想法.

标签:javascript,ios,uiwebview
来源: https://codeday.me/bug/20190831/1777528.html