2011-02-11 64 views
1

我一直在看足夠的博客,所以我非常確定它是如何編碼的......但他們都沒有提到JavaScript注入在Obj-C代碼中的位置?基本上我想要做的就是擺脫用戶可以導航到的所有頁面上的標題(或者至少是最初加載的頁面)。如果這是一個問題,我會擔心後續頁面。保持簡單,愚蠢)。這裏是我的代碼:UIWebView JavaScript注入

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

我只是有一段時間找到一個地方,它應該實際上工作。我把它歸因於不完全理解UIWebView。我想我會在這裏張貼這篇文章,然後同時閱讀它的工作原理,也許我會自己解決這個問題。

回答

1

你的JavaScript代碼應該被執行一個你的整個HTML文檔已經加載(和所有的DOM對象)。

因此,你應該粘貼在一個UIWebView的委託方法- (void)webViewDidFinishLoad:(UIWebView *)webView(當然你需要實現將被設置爲一個UIWebView的委託對象的代碼,作爲任何委託方法和您的每一次stringByEvaluatingJavascriptFromString叫你使用委託模式)

+0

儘管我發現這會在大多數情況下工作,但我必須提醒任何人,在調用此方法後,動態頁仍然可以執行大量加載。因此,最好繼續檢查,直到預期的元素被加載。你可以通過運行一些試圖通過DOM查找你的元素的JavaScript來做到這一點。 – 2013-06-10 14:04:10