我有一个webview
WebView wv;
wv = (WebView)findViewById(R.id.webView1);
wv.loadUrl("http://example.com/");
Run Code Online (Sandbox Code Playgroud)
简单地说.
在:
onPageFinished
Run Code Online (Sandbox Code Playgroud)
我有:
wv.loadUrl("javascript:(function() { " + "document.getElementsByClassName('centered leaderboard_container')[0].style.display = 'none'; " + "document.getElementsByClassName('n')[0].style.display = 'none'; " + "document.getElementsByClassName('paginator')[0].style.display = 'none'; " + "document.getElementsByTagName('ul')[0].style.display = 'none'; " + "document.getElementsByTagName('tr')[0].style.display = 'none'; " + "})()");
Run Code Online (Sandbox Code Playgroud)
我已将webview可见性设置为INVISIBLE
如何在JavaScript完成后设置对VISIBLE的可见性?
现在你可以看到整个页面,而不是JavaScript完成了..
任何人?
PS.该网站不是我的,它是第三方网站
我似乎正在与竞争条件作斗争,其原因似乎无法确定.执行下面的代码时,我会间歇性地获得下面的堆栈跟踪.
是否有一些明显的片段生命周期规则我不服从?我不清楚明确禁止我在这里执行事务处理事件的内容.
我正在使用a WebViewClient
来检测在本地.html文档中单击的外部URL - 例如,指向非本地主机的URL.我正在使用Otto EventBus
将这些行动发布到Activity
.当Activity
收到这些事件时,我想Fragment
通过调用显示不同的外部URLFragmentTransaction.replace()
DefaultWebViewClient.java
@Override
public boolean shouldOverrideUrlLoading(final WebView view, final String url) {
boolean shouldOverride;
if (urlIsLocal(url)) {
shouldOverride = super.shouldOverrideUrlLoading(view, url);
} else {
// trigger an event for the fragment to swap out
// return true to tell the webview not to load it...
EventBus.getInstance().post(new LoadExternalUrlEvent(url));
shouldOverride = true;
}
return shouldOverride;
}
Run Code Online (Sandbox Code Playgroud)
FragmentActivity.java
@Subscribe
public void onLoadExternalUrlEvent(LoadExternalUrlEvent externalLoadEvent) {
final BrowserFragment browserFragment = …
Run Code Online (Sandbox Code Playgroud)