意外触发 Onclick 处理程序加载
Trigger Onclick Handler Onload By Accident
我有以下 class 意外触发 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.
所以我不确定为什么会触发 onclick 事件,但添加以下内容似乎有效。
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>
我有以下 class 意外触发 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.
所以我不确定为什么会触发 onclick 事件,但添加以下内容似乎有效。
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>