相关疑难解决方法(0)

如何通过history.pushState获得有关历史变化的通知?

因此,现在HTML5引入history.pushState了更改浏览器历史记录,网站开始将其与Ajax结合使用,而不是更改URL的片段标识符.

可悲的是,这意味着不再能够检测到这些呼叫了onhashchange.

我的问题是:是否有可靠的方法(黑客?;))来检测网站何时使用history.pushState?规范没有说明引发的事件(至少我找不到任何东西).
我尝试创建一个外观并替换window.history为我自己的JavaScript对象,但它根本没有任何效果.

进一步说明:我正在开发一个需要检测这些更改并相应操作的Firefox附加组件.
我知道几天前有一个类似的问题,询问听一些DOM事件是否有效但我宁愿不依赖它,因为这些事件可能由于很多不同的原因而产生.

更新:

这是一个jsfiddle(使用Firefox 4或Chrome 8),显示调用onpopstate时不会触发pushState(或者我做错了什么?随意改进它!).

更新2:

另一个(侧面)问题是window.location在使用时没有更新pushState(但我已经在这里读到了这个,我认为).

javascript firefox-addon browser-history pushstate

139
推荐指数
6
解决办法
7万
查看次数

我怎么知道我的WebView 100%加载?

我正在尝试在我的WebView中加载一些包含JavaScript的HTML代码.

现在,我想测试我的WebView是否在5秒之前加载.我已经尝试过这种方法getProgress(),但有时我得到的结果是100,但我的Webview没有加载.
有没有其他方法可以确保我的Webview 100%加载?

这是我的代码的一部分:

sdk.getWebView().loadDataWithBaseURL("notreal/", data_html,MIME_TYPE,ENCODING_UTF_8,null);

Timer timer = new Timer();
TimerTask task = new TimerTask() {

    @Override
    public void run(){                      
    Log.i("TAG", "progress fin = "+sdk.getWebView().getProgress());

    if(sdk.getWebView().getProgress() <100){
        //cancel the webView
        sdk.getContext().runOnUiThread(new Runnable() {
             @Override
             public void run() {
            sdk.getImgView().setVisibility(View.VISIBLE);
            sdk.getWebView().setVisibility(View.GONE);
             }
        });
    }

    // else ,the Webview is loaded
    else{
        //prepare webview 
        sdk.getContext().runOnUiThread(new Runnable() {
            @Override
            public void run(){
                     // hide imageView
                     sdk.getImgView().setVisibility(View.GONE);
                     sdk.getWebView().setVisibility(View.VISIBLE);
            }
        });
    }

 }
 };
 timer.schedule(task, 5000);
Run Code Online (Sandbox Code Playgroud)

android android-webview

54
推荐指数
5
解决办法
7万
查看次数

Android Web-View:将本地Javascript文件注入远程网页

之前已经多次询问过,我浏览了所有内容,还没有明确的答案.

问题简化:是否可以将本地Javascript文件(从资产或存储)注入Android Web视图中加载的远程网页?我知道可以将这些文件注入Web-View中加载的本地Web页面(Assets HTML).

为什么我需要这个呢?:通过避免每次都下载较大的文件(如Js和CSS文件)来提高浏览体验.我想避免Web-View缓存.

javascript android caching webview

37
推荐指数
3
解决办法
5万
查看次数

Android检测webview URL更改

我的Android应用程序中有一个webview,想要检测网址何时发生变化.

当用户在info.php页面上时,我想使用它来隐藏顶部栏中的信息按钮,当他不在info.php页面上时再次显示它.

我用Google搜索但找不到任何正常工作的代码,有人可以帮助我吗?

url android webview

19
推荐指数
5
解决办法
4万
查看次数