javascript - 我应该用哪种方法注入(inject)javascript? (stringByEvaluatingJavaScriptFromString)

标签 javascript objective-c ios uiwebview

我已经创建了一个 IOS 应用。

该应用程序具有 MainViewController,它将显示/关闭来自 webViewController 的模态视图 nib 文件(包含 NavBar 和 UIWebView)。我想在 UIWebView 加载的每个网页中注入(inject)我的 javascript 函数,这些函数将在网页中调用,这意味着所有函数都必须在页面加载完成之前完成加载。

我尝试了很多方法,但似乎当 ModalView 再次出现时(它在第一次出现时工作正常)。页面不知道我注入(inject)的函数。

所以我的问题是:

  • 如果 ModalView 存在时 UIWebView 加载请求,我应该在哪里注入(inject)我的 javascript?在加载请求之前?没有开始加载? didFinishLoad?
  • 关闭 ModalView 时我应该如何处理 UIWebView?加载 about:blank 请求?

感谢阅读和任何帮助/建议。 :)

最佳答案

Where should i inject my javascript if the UIWebView load request when the ModalView present? Before loadRequest? didStartLoad? didFinishLoad?

webViewDidFinishLoad: 中。在此之前,您不能调用 stringByEvaluatingJavaScriptFromString:。不幸的是,如果不显示 Web View 就没有达到这一点的好方法,如果您的 JavaScript 更改太多,这有时会导致 View “闪烁”。有时我会在 web View 上放置一个额外的 View 以将其隐藏,直到 webViewDidFinishLoad: 完成。

What should i do with UIWebView when dismiss the ModalView? load the about:blank request?

没有。它应该在模态视图被释放时被释放。

关于javascript - 我应该用哪种方法注入(inject)javascript? (stringByEvaluatingJavaScriptFromString),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503683/

相关文章:

objective-c - NSDictionary 不区分大小写 objectForKey :

javascript - 如果未指定 NAME 属性,则 getElementById 在 IE 中不起作用(Javascript、HTML5 和 Internet Explorer)

javascript - CDNJS 的 fullcalendar.js 不起作用?

iphone - 核心数据迁移 : methods in NSEntityMigrationPolicy not called.

objective-c - block 会在运行它的线程上保持执行吗?

ios - Xamarin iOS 自定义 View

ios - 每次按下按钮时将数据添加到 UITextView 中的新行

iphone - 如何更改 iPhone 中导航栏的默认高度

javascript - 使用原始javascript在DOM中通过其类属性查找元素而不使用id

javascript - 如何为数组创建方法作为javascript中对象的属性?