你覺得累嗎? 累就對(duì)了,因?yàn)槭娣墙o死人準(zhǔn)備的 ..
今天遇到了webView 中網(wǎng)頁顯示的問題,大家都知道webView的強(qiáng)大之處,因?yàn)閣ebView根據(jù)url(統(tǒng)一資源定位符)不但可以顯示本地的資源,而且還可以顯示網(wǎng)絡(luò)上的一些數(shù)據(jù),大大減少了我們代碼量,只要看好了一個(gè)網(wǎng)頁我們直接拿來了用就行,但是往往這些網(wǎng)頁中有一些是我們所不需要的東西.比如廣告了,一些鏈接啦,大大降低了我們的應(yīng)用程序的美觀.如下圖
對(duì)于這樣的問題,像我這小菜鳥真是腦洞再大也解決不了,幸得大神幫助,給我推薦一篇的博客.成功的解決了問題.
----> 點(diǎn)擊此處進(jìn)入原文博客
根據(jù)大牛的思路,總共分這么幾步
1.使用工具獲取到你想要獲取到頁面上的控件(ccs操作???不懂...)
2.打開開發(fā)者工具 ,我們用到的地方如下圖
Device:你要選擇在那種情境下顯示網(wǎng)頁,通俗來說,就是模擬器
放大鏡:你可以通過放大鏡對(duì)網(wǎng)頁上的控件進(jìn)行選取,然后找到html代碼.(重要的第一步呀)
手機(jī):轉(zhuǎn)化為手機(jī)模式,但是前提必須要轉(zhuǎn)換Device的模式,要不然,光是視圖上的轉(zhuǎn)變,沒有實(shí)際的轉(zhuǎn)變(注意:我現(xiàn)在拿手機(jī)的網(wǎng)頁做示例,所有我需要轉(zhuǎn)化,當(dāng)你做的電腦的就不需要轉(zhuǎn)換這些了)
3.查找到我們所需要的控件(JS操作)
3.1點(diǎn)擊放大鏡,這樣我們就可以對(duì)網(wǎng)頁上的控件進(jìn)行選取了;
3.2選取你要取消網(wǎng)頁上的控件(單擊就行),這時(shí)候你就會(huì)發(fā)現(xiàn)html代碼有一部分被選中(右下邊可以直接被編輯)
3.3我們?cè)谟蚁逻吙梢灾苯犹钌舷旅孢@行代碼,直接完成廣告的去除,但這不是我們要的效果,我們要的效果是通過OC來去除廣告,心急吃不了熱豆腐,請(qǐng)執(zhí)行下面代碼
display:none (這行代碼這右下邊的編輯區(qū)任意地方寫就行 如圖)
3.4上面就是給你個(gè)希望而已,不要激動(dòng),精彩的在后面,我們看到了取出效果之后,我們就要找到class內(nèi)的字符串,這里我們就要'g-mnc1'就行.
緊接著打開控制臺(tái)Console 輸入如下代碼 回車
document.getElementsByClassName('這里寫你要消除的空間的class里面的字符串')
如圖所示
緊接著打開數(shù)組中的第一個(gè)元素 輸入如下代碼 回車
document.getElementsByClassName('這里寫你要消除的空間的class里面的字符串')[0]
如圖所示
又接著,我是真夠了又接著了...重復(fù)呀!!夠夠的了.(這才是我們最終所需要的!!!注意啦)
document.getElementsByClassName('這里寫你要消除的空間的class里面的字符串')[0].style.display = 'none'
4.驗(yàn)證完成之后,我們就需要對(duì)我們的UIwebView進(jìn)行操作了,這里我就直接引用大牛的文章了(iOS操作)(這兩天身體不適,改天再寫了,抱歉了)
1.創(chuàng)建UIWebView
2.設(shè)置代理
3.加載網(wǎng)絡(luò)請(qǐng)求
注意:順序問題很重要,不懂的直接當(dāng)CV戰(zhàn)士吧,盡情的復(fù)制黏貼吧,吼吼
//創(chuàng)建webview
self.webview = [[UIWebView alloc] initWithFrame:self.view.frame];
[self.view addSubview:_webview];
//設(shè)置代理
self.webview.delegate = self;
//發(fā)送請(qǐng)求
[_webview loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.haodou.com/topic-327282.html?id=327282"]]];
我們可以通過webView的代理方法進(jìn)行我們 JS操作(如下) 方法:
- (void)webViewDidFinishLoad:(UIWebView *)webView
#pragma mark - UIWebViewDelegate
- (void)webViewDidFinishLoad:(UIWebView *)webView{
[webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.getElementsByClassName('adpic')[0].style.display = 'none'"];
}
然后我們所需要的效果就出來了;新鮮的,來兩口 .屏蔽webView中的廣告完成.
總結(jié):document.documentElement.getElementsByClassName('這里寫你要消除的空間的class里面的字符串')[0].style.display = 'none' 是我們今天的重點(diǎn)
最后感謝大牛的博客
----> 點(diǎn)擊此處進(jìn)入原文博客
有錢的點(diǎn)個(gè)喜歡,不要錢了,沒錢的也來也喜歡了 謝謝大家了,嗚嗚....