【问题标题】:UIWebView JavaScript InjectionUIWebView JavaScript 注入
【发布时间】:2011-02-11 17:02:01
【问题描述】:

我一直在看足够多的博客,所以我很确定它是如何编码的......但似乎没有一个提到 javascript 注入在 Obj-C 代码中的位置?基本上我想做的就是摆脱用户可以导航到的所有页面上的标题(或者至少是最初加载的页面......如果这是一个问题,我会担心以后的页面。保持简单,愚蠢的 )。这是我的代码:

[self stringByEvaluatingJavaScriptFromString:@"document.getElementById('login').childNodes[1].innerHTML=''"];

我只是在寻找一个真正应该工作的地方。我将其主要归因于没有完全理解 UIWebView。我想我会在这里发布这个,然后同时阅读它是如何工作的,也许我自己会弄清楚。

【问题讨论】:

    标签: javascript uiwebview code-injection


    【解决方案1】:

    您的 javascript 代码应该在您的整个 HTML 文档(及其所有 DOM 对象)已加载后执行。

    因此,您应该将 stringByEvaluatingJavascriptFromString 调用粘贴到 UIWebView 的委托方法 - (void)webViewDidFinishLoad:(UIWebView *)webView 中(当然,您需要在将设置为 UIWebView 委托的对象中实现此代码,对于任何委托方法和每次使用委托模式时)

    【讨论】:

    • 虽然我发现这在大多数情况下都会起作用,但我必须提醒任何人,在调用此方法后动态页面仍然可以进行大量加载。所以最好继续检查直到加载了预期的元素。您可以通过运行一些尝试通过 DOM 找到您的元素的 javascript 来做到这一点。
    猜你喜欢
    • 2017-06-10
    • 2012-06-24
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 2012-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多