精华内容
下载资源
问答
  • onclick事件 点击事件ondbclick事件 双击事件onload事件 页面开始加载的时候会先调用方法。此方法只能写在<body>标签之中onchange事件 当内容改变时触发。可用于文本框、列表框等对象,该事件一般用于...

    onclick事件
        点击事件
    ondbclick事件
        双击事件
    onload事件
        页面一开始加载的时候会先调用这个方法。此方法只能写在<body>标签之中
    onchange事件
        当内容改变时触发。可用于文本框、列表框等对象,该事件一般用于响应用户修改内容带来的其他改变操作。

    说明:当用户向一个文本框中输入文本时,不会触发onchange事件,只有用户输入结束后,单击文本框以外的区域,使文本框失去焦点时才触发该事件,如果是下拉框,则选择结束后即触发。
    onblur事件和onfocus事件
        onblur事件,当前元素失去焦点时触发该事件。对应的是onfocus事件:得到焦点事件
    onscroll事件
        窗口滚动事件:当页面滚动时调用函数。此事件写在方法的外面,且函数名后面不加括号,例如window.οnscrοll=move
            functionmove() {

      alert("页面滚动时调用");

      }
    window.onscroll = move;
    鼠标相关事件
        onmousemove
            鼠标移动到某对象范围的上方时,触发事件调用函数。注意:在同一个区域中,只要鼠标动一次就触发一次事件。
        onmouseout
            鼠标离开某对象范围时,触发事件调用函数。
        onmouseover
            鼠标移动到某对象范围的上方时,触发事件调用函数。注意:在同一个区域中,无论怎样移动都只触发一次函数。
        onmouseup
            当鼠标松开时触发事件
        onmousedown
            当鼠标按下键时触发事件

    转载于:https://www.cnblogs.com/zhangwei2065289/p/8861605.html

    展开全文
  • webview中js调用java方法

    2017-04-06 14:17:15
    开始我想着是监听网页中的点击事件,但最后还是选择了 当点击了网页中的按钮后,让js(网页)调用我们的java方法。下面附上webview中的使用代码/*在js注册点击监听回调 */ webview.addJavascriptInterface...

    前几天接到这样一个需求,在android webview中显示网页的内容,但是网页中有一按钮,点击后需要我们app中去处理。开始我想着是监听网页中的点击事件,但最后还是选择了 当点击了网页中的按钮后,让js(网页)调用我们的java方法。下面附上webview中的使用代码

    /*在js注册点击监听回调
    */
    webview.addJavascriptInterface(MainActivity.this,"android");
    //需要js调用的函数
    //由于安全原因 需要加 @JavascriptInterface
            @JavascriptInterface
            public void shareActive(String json) {
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        showprogress();
                    }
                });
        }

    初步解释一下上面两个函数意义
    addJavascriptInterface就是在js注册点击监听回调。两个参数分别是上下本对象,另一个
    “android”是我们自定义的一个对象名称。在js中使用 window.android.shareActive(“我是帅聪”),即可完成js调用java的方法。

    1. shareActive(String data),是目标函数,即js要调用的函数
      java调用js并传参数
      //调用js中的函数:showInfoFromJava(state )
      int state=1;
      web_detail.loadUrl(“javascript:showInfoFromJava(‘” + state + “’)”);
      其中state是我们需要传过去的值,同时也是js中取值的关键字
    展开全文
  • 做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些...这个时候,一个简单的做法就是在按钮动作事件js上调用java的方法,从而起到判断是否登录,并决定是否跳转到另一个页面。 Google...

    做项目时候会遇到我们用WebView 打开一个web,希望这个web可以调用自己的一些方法,比如我们在进一个web页面,然后当我们点击web上的某个按钮时,希望能判断当前手机端是否已经登录,如果未登录,那么就会跳转到登录页面(登陆页面是另一个Activity)。这个时候,一个简单的做法就是在按钮动作事件的js上调用java的方法,从而起到判断是否登录,并决定是否跳转到另一个页面。

    Google的WebView为我们提供了 addJavascriptInterface(Object obj, String interfaceName)方法,这个方法的第一个参数是传给Web的对象,第二个参数是该对象的对象名。

    public class WebActivity extends Activity{
    
        ProgressBar mProgressBar;
        WebView mWebView;
        String mUrl;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.web);
            mWebView = (WebView) findViewById(R.id.web_view);
            mProgressBar = (ProgressBar) findViewById(R.id.loading_progress);
            doWebViewSetting();
    //    加载网页
            loadUrl("http://172.10.1.2:8080/test");
        }
    
        private void doWebViewSetting(){
    //   设置WebClient(可不要)
            mWebView.setWebViewClient(new MyWebViewClient());
    //  支持js(必要)
            mWebView.getSettings().setJavaScriptEnabled(true);
    //    添加js对象(必要)
            mWebView.addJavascriptInterface(new JsOperation(this), "client");
        }
    
        private void loadUrl(String url) {
            mUrl = url;
            mProgressBar.setVisibility(View.VISIBLE);
            mWebView.loadUrl(url);
        }
    
    
        class MyWebViewClient extends WebViewClient{
            @Override
            public void onPageFinished(WebView view, String url) {
                super.onPageFinished(view, url);
                mProgressBar.setVisibility(View.GONE);
            }
        }
        class JsOperation {
    
            Activity mActivity;
    
            public JsOperation(Activity activity) {
                mActivity = activity;
            }
    
    //    测试方法
           @javascriptInterface
            public void test() {
                Toast.makeText(mActivity,"test",Toast.LENGTH_SHORT).show();
            }
        }

     以上是我的WebActivity ,我这里只简单的实现的加载时进度条显示和提供对象给js。可以看出,我们提供了一个JsOperation 对象给web,然后在JsOperation 类中定义了test()方法。接下来就看看,Web方面要如何调用该方法。

    <!DOCTYPE html>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>测试</title>
        <script type="text/javascript">
            function test(){
                client.test()
            }
    
        </script>
    </head>
    <body>
    <br />
    <button οnclick="test()">test</button>
    </body>
    </html>

     web的实现方式特别简单,直接调用我们提供的对象,这里要注意的是,对象名是我们之前传入的String,这里是client,直接调用它的test()方法,就能弹出一个Toast了,当然你也可以在这个方法里做其他的各种处理,也可以提供多个方法,如果你需要传入参数,那么在java上定义好形参后,js上就正常的调用方法并传入参数,如client.test(param)就可以了,没什么特别要注意的地方。

     

    特别注意:Android的WebView存在安全漏洞,因为js调用对象是可以通过反射再调用Runtime甚至可能以web挂马形式控制主机,google也承认webView这个功能太强了,给了web很大的权利,Android 4.2 (api17)已经开始采用新的接口方法,@JavascriptInterface  代替addjavascriptInterface, 但是低版本上是不能避免。

    展开全文
  •  开发过程中需要使用webview加载一个网络图片并在点击图片时有相应的动作,由于webview截获了一切动作事件,使用js调用java本地代码的方式来完成需求,在使用时,发现在use-sdk中配置android:targetS

    [原]WebView使用中js调用java代码时targetSdkVersion大于17时,无法调用成功

    2014-9-22阅读464 评论2

           开发过程中需要使用webview加载一个网络图片并在点击图片时有相应的动作,由于webview截获了一切动作事件,使用js调用java本地代码的方式来完成需求,在使用时,发现在use-sdk中配置android:targetSdkVersion大于17时,js不能调用到java代码,

        修改方法有两个:

           1.修改android:targetSdkVersion="10",这个只能为一时的解决方案,

           2. 查找官方文件:说在17以上需要添加一个接口JavascriptInterface才能用,即在js调用的java代码上方加上JavascriptInterface的注解,同时,在混淆代码时,注意不要混淆JavascriptInterface的注解,否则也会出现js不能调用java代码的情况发生。(-keepattributes *Annotation*)


    1
    2
    3
    4
    5
    6
    7
    class JsObject {
       @JavascriptInterface
       public String toString() { return "injectedObject"; }
    }
    webView.addJavascriptInterface(new JsObject(), "injectedObject");
    webView.loadData("""text/html"null);
    webView.loadUrl("javascript:alert(injectedObject.toString())");

    展开全文
  • 方案思路: 1.在点击图片的时候调用本地的java方法并给出响应的图片...那么我们需要给这个点击事件加上相应的js函数,让点击事件调用js函数来调用我们提前准备好的java函数,等我们捕获到图片的url剩下的就好处
  • 首先静态html标签是无法直接调用java程序的,但是可以通过imput button按钮点击,onclick事件调用一个js函数,用这个js函数链接到一个jsp页面,然后在jsp页面嵌入java程序的代码就可以了,至于java程序中的main函数...
  • 最近碰到个新需求需要点击webview中的图片进行放大显示。 ...整理了下思路,想到了下面的...1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地获得图片地址后,开启一个遮罩activity进行显示和
  • 转载请注明出处 ...  最近碰到个新需求需要点击webview中的图片进行放大显示。 ...整理了下思路,想到了下面的一个可行的方案。...1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地
  • 最近碰到个新需求需要点击webview中的图片进行放大显示。 整理了下思路,想到了...1.在点击图片的时候调用本地的java方法并给出响应的图片地址 2.本地获得图片地址后,开启一个遮罩activity进行显示和处理 第二
  • JS的return与JAVA的return

    2020-06-30 23:50:03
    例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页. Return False 就相当于终止符,Return True 就相当于执行符。 在js中return false的作用一般是用来取消默认动作的。比如你...
  • 最近碰到个新需求需要点击webview中的图片进行放大显示。 整理了下思路,想到了下面的一个可行的方案。 方案思路, 1.在点击图片的时候调用本地的java方法...那么我们需要给这个点击事件加上相应的js函数,让点击...
  • webview与js的相互交互

    千次阅读 2014-06-07 09:27:53
    方案思路, 1.在点击图片的时候调用本地的java方法并给出响应...那么我们需要给这个点击事件加上相应的js函数,让点击事件调用js函数来调用我们提前准备好的java函数,等我们捕获到图片的url剩下的就好处理了。 关
  • 04.10 js

    2019-04-10 19:20:40
    alert 弹出提示框 查看数据是否正确 打印在控制台相当于java中 prompt 弹出一个带有输入框的提示框 prompt拿数据 prompt(“”显示到提示框的内容“”) ...给一个点击事件 点击事件调用方法 数据转换 parse...
  • 今天和同事共同讨论了一个关于WebView中的文本控件去获得系统联系人的功能,之前单纯的以为只是点击...当时我就单纯的以为应该实现不了吧,但后来同事一提醒,如果传递号码作为客户端页面一个Js事件的参数然后为文本框

空空如也

空空如也

1 2 3 4
收藏数 72
精华内容 28
关键字:

java调用一个js点击事件

java 订阅