2017-03-04 8 views
-2

私はonclickハンドラーのオンロードを偶発的にトリガーする次のクラスを持っています。トリガーOnclickハンドラーのオンロードによる事故

import android.app.Activity; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 
    private WebView w; 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    w = (WebView) findViewById(R.id.activity_main_webview); 
    w.getSettings().setJavaScriptEnabled(true); 
    w.getSettings().setBuiltInZoomControls(true); 
    w.getSettings().setDisplayZoomControls(false); 
    w.setWebChromeClient(new WebChromeClient()); 
    w.loadUrl("http://dus.tn/music.html"); 

    w.setWebViewClient(new WebViewClient() { public void onPageFinished(WebView w, String url) { 
     String s = "javascript:" 
      + "(function() {" 
      + " try{document.body.style.color='blue';del();}catch(e){}" 
      + "})();"; 
     if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) 
      w.evaluateJavascript(s, null); 
     else w.loadUrl(s); 
     } 
    }); 
    } 
    @Override 
    public void onBackPressed() { 
    if(w.canGoBack())w.goBack(); 
    else super.onBackPressed(); 
    } 
} 

htmlコードはhereで、dus.tn/music.htmlにも掲載されています。

答えて

-1

なぜonlickイベントがトリガーされているのかわかりませんが、以下を追加すると動作するように見えます。

function del(a){ 
    if(this == window)return; 
    if (window.confirm("Delete?")) { 
    $(a).parent().remove(); 
    } 
} 

と、次の

<a class=del href="#del" onclick="del.call(this,this);return false">X</a> 
関連する問題