首先使用jQuery选择器获取到想要绑定click事件的img元素,然后可以直接绑定click方法,也可以通过bind方法绑定。这里详细介绍一下bind方法。

jQuery 事件 - bind() 方法 —— 定义和用法

bind() 方法为被选元素添加一个或多个事件处理程序,并规定事件发生时运行的函数。

jQuery 事件 - bind() 方法 ——将事件和函数绑定到元素

规定向被选元素添加的一个或多个事件处理程序,以及当事件发生时运行的函数。

jQuery 事件 - bind() 方法——语法$(selector).bind(event,data,function)

jQuery 事件 - bind() 方法——参数描述

event 必需。规定添加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。

data 可选。规定传递到函数的额外数据。

function 必需。规定当事件发生时运行的函数。

实例://直接给所有img标签绑定click事件

$("img").click(function(){

alert('你点击了图片');

})

//使用bind方法绑定click事件

$("img").bind("click",function(){

alert('你点击了图片');

})

Html 的img标签添加点击事件package com.topnews;

import java.util.ArrayList;

import android.annotation.SuppressLint;

import android.app.Activity;

import android.app.Fragment;

import android.content.Context;

import android.content.Intent;

import android.graphics.Bitmap;

import android.os.AsyncTask;

import android.os.Bundle;

import android.text.TextUtils;

import android.util.Log;

import android.view.View;

import android.view.ViewGroup.LayoutParams;

import android.webkit.WebChromeClient;

import android.webkit.WebSettings;

import android.webkit.WebView;

import android.webkit.WebViewClient;

import android.webkit.WebSettings.LayoutAlgorithm;

import android.widget.Button;

import android.widget.FrameLayout;

import android.widget.ProgressBar;

import android.widget.TextView;

import com.topnews.base.BaseActivity;

import com.topnews.bean.NewsEntity;

import com.topnews.service.NewsDetailsService;

import com.topnews.tool.BaseTools;

import com.topnews.tool.DataTools;

import com.topnews.tool.DateTools;

@SuppressLint("JavascriptInterface")

public class DetailsActivity extends BaseActivity {

private TextView title;

private ProgressBar progressBar;

private FrameLayout customview_layout;

private String news_url;

private String news_title;

private String news_source;

private String news_date;

private NewsEntity news;

private TextView action_comment_count;

WebView webView;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.details);

setNeedBackGesture(true);// 设置需要手势监听

getData();

initView();

initWebView();

}

/* 获取传递过来的数据 */

private void getData() {

news = (NewsEntity) getIntent().getSerializableExtra("news");

news_url = news.getSource_url();

news_title = news.getTitle();

news_source = news.getSource();

news_date = DateTools.getNewsDetailsDate(String.valueOf(news.getPublishTime()));

}

private void initWebView() {

webView = (WebView) findViewById(R.id.wb_details);

LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

if (!TextUtils.isEmpty(news_url)) {

WebSettings settings = webView.getSettings();

settings.setJavaScriptEnabled(true);// 设置可以运行JS脚本

// settings.setTextZoom(120);//Sets the text zoom of the page in

// percent. The default is 100.

settings.setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN);

// settings.setUseWideViewPort(true); //打开页面时, 自适应屏幕

// settings.setLoadWithOverviewMode(true);//打开页面时, 自适应屏幕

settings.setSupportZoom(false);// 用于设置webview放大

settings.setBuiltInZoomControls(false);

webView.setBackgroundResource(R.color.transparent);

// 添加js交互接口类,并起别名 imagelistner

webView.addJavascriptInterface(new JavascriptInterface(getApplicationContext()), "imagelistner");

webView.setWebChromeClient(new MyWebChromeClient());

webView.setWebViewClient(new MyWebViewClient());

Log.i("info", "news_url:" + news_url);

Log.i("info", "news_title:" + news_title);

Log.i("info", "news_source:" + news_source);

Log.i("info", "news_date:" + news_date);

new MyAsnycTask().execute(news_url, news_title, news_source + " " + news_date);

}

}

private void initView() {

title = (TextView) findViewById(R.id.title);

progressBar = (ProgressBar) findViewById(R.id.ss_htmlprogessbar);

customview_layout = (FrameLayout) findViewById(R.id.customview_layout);

// 底部栏目

action_comment_count = (TextView) findViewById(R.id.action_comment_count);

progressBar.setVisibility(View.VISIBLE);

title.setTextSize(13);

title.setVisibility(View.VISIBLE);

title.setText(news_url);

action_comment_count.setText(String.valueOf(news.getCommentNum()));

}

@Override

public void onBackPressed() {

super.onBackPressed();

overridePendingTransition(R.anim.slide_in_left, R.anim.slide_out_right);

}

private class MyAsnycTask extends AsyncTask {

@Override

protected String doInBackground(String... urls) {

String data = NewsDetailsService.getNewsDetails(urls[0], urls[1], urls[2]);

Log.i("info", "MyAsnycTask.data:" + data);

return data;

}

@Override

protected void onPostExecute(String data) {

webView.loadDataWithBaseURL(null, data, "text/html", "utf-8", null);

}

}

// 注入js函数监听

private void addImageClickListner() {

// 这段js函数的功能就是,遍历所有的img几点,并添加onclick函数,在还是执行的时候调用本地接口传递url过去

webView.loadUrl("javascript:(function(){" + "var objs = document.getElementsByTagName(\"img\");" + "var imgurl=''; "

+ "for(var i=0;i

+ " window.imagelistner.openImage(imgurl); " + " } " + "}" + "})()");

}

// js通信接口

public class JavascriptInterface {

private Context context;

public JavascriptInterface(Context context) {

this.context = context;

}

public void openImage(String img) {

//

String[] imgs = img.split(",");

ArrayList imgsUrl = new ArrayList();

for (String s : imgs) {

imgsUrl.add(s);

Log.i("图片的URL>>>>>>>>>>>>>>>>>>>>>>>", s);

}

Intent intent = new Intent();

intent.putStringArrayListExtra("infos", imgsUrl);

intent.setClass(context, ImageShowActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

context.startActivity(intent);

}

}

// 监听

private class MyWebViewClient extends WebViewClient {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

return super.shouldOverrideUrlLoading(view, url);

}

@Override

public void onPageFinished(WebView view, String url) {

view.getSettings().setJavaScriptEnabled(true);

super.onPageFinished(view, url);

// html加载完成之后,添加监听图片的点击js函数

addImageClickListner();

progressBar.setVisibility(View.GONE);

webView.setVisibility(View.VISIBLE);

}

@Override

public void onPageStarted(WebView view, String url, Bitmap favicon) {

view.getSettings().setJavaScriptEnabled(true);

super.onPageStarted(view, url, favicon);

}

@Override

public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {

progressBar.setVisibility(View.GONE);

super.onReceivedError(view, errorCode, description, failingUrl);

}

}

private class MyWebChromeClient extends WebChromeClient {

@Override

public void onProgressChanged(WebView view, int newProgress) {

// TODO Auto-generated method stub

if (newProgress != 100) {

progressBar.setProgress(newProgress);

}

super.onProgressChanged(view, newProgress);

}

}

}

// NewsDetailsService.javapackage com.topnews.service;

import java.io.IOException;

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.nodes.Element;

import android.text.TextUtils;

public class NewsDetailsService {

public static String getNewsDetails(String url, String news_title,

String news_date) {

Document document = null;

String data = "

" +

"

" + news_title + "

";

data = data + "

"

+ ""

+ news_date

+ ""

+ "

";

data = data + "


";

try {

document = Jsoup.connect(url).timeout(9000).get();

Element element = null;

if (TextUtils.isEmpty(url)) {

data = "";

element = document.getElementById("memberArea");

} else {

element = document.getElementById("artibody");

}

if (element != null) {

data = data + element.toString();

}

data = data + "";

} catch (IOException e) {

e.printStackTrace();

}

return data;

}

}

html页面图片可点击事件,html中如何给图片添加点击事件的详解相关推荐

  1. android 部分区域点击,Android编程实现ListView中item部分区域添加点击事件功能

    本文实例讲述了Android编程实现ListView中item部分区域添加点击事件功能.分享给大家供大家参考,具体如下: 需求如题目:Android listview中item部分区域添加点击事件,在 ...

  2. python 读取图片转换为一维向量_对Python中一维向量和一维向量转置相乘的方法详解...

    对Python中一维向量和一维向量转置相乘的方法详解 在Python中有时会碰到需要一个一维列向量(n*1)与另一个一维列向量(n*1)的转置(1*n)相乘,得到一个n*n的矩阵的情况.但是在pyth ...

  3. miniui单元格点击弹框_miniui 给表格行添加监听事件的几种方法以及点击某列列名数据不能排序的问题...

    最近在使用miniui框架做开发,在做表格行的点击监听事件中发现了几个属性,都可以起到监听效果但是执行的结果却大有不同.好了废话不多说,直接上代码. autoload="true" ...

  4. js原生给生成的html添加点击事件,原生js为动态元素添加监听事件

    //已存在div //创建标签 function createpage(){ var span=document.createElement('span') span.innerHTML=" ...

  5. 【Android 安装包优化】WebP 图片格式兼容与性能 ( Android 中的 WebP 图片格式兼容问题 | Android 中的 WebP 图片格式性能 )

    文章目录 一.Android 中的 WebP 图片格式兼容问题 二.Android 中的 WebP 图片格式性能 三.参考资料 一.Android 中的 WebP 图片格式兼容问题 在 Android ...

  6. 图片提取利器,从PDF中快速提取图片并存储到本地

    PDF是日常生活中经常使用的文件格式,里面可能包含着重要的文字信息和图片资源.然而当需要提取PDF中的图片时,往往需要使用复杂的工具.图片提取利器能够帮助你从PDF中快速提取图片并存储到本地. # c ...

  7. html页面在ie上出现404怎么解决,ie浏览器网页上有错误解决方法详解

    ie浏览器网页上有错误解决方法详解 最近网友反馈我的浏览器左下角总显示"网页上有错误",我已经修复过IE了,可是不管用.然后在浏览器上看不到网上的视频和图片的播放.在QQ空间上输入 ...

  8. ios开发 微博图片缩放处理错误_H5响应式开发必会之Viewport(视窗)详解

    什么是 Viewport?viewport 是用户网页的可视区域. viewport 翻译为中文可以叫做"视区". 手机浏览器是把页面放在一个虚拟的"窗口"(v ...

  9. python docx 提取图片_Python提取docx文档中所有嵌入式图片和浮动图片

    术语: 浮动图片,是指在Word文档中位置可以自由移动.可以环绕文字或放置于文字上方.下方的图片,不占文档流的位置,可以和文字或嵌入式图片重叠. 嵌入式图片或行内图片,和文档中的文字一样占文档流的位置 ...

  10. 页面嵌iframe标签,给iframe标签里的按钮添加点击事件

    通过getElementById()方法获取iframe元素时,可以看到获取的是整个iframe标签,此时是获取不到里面的a元素的:需要再往下找iframe里的document元素. 获取a元素失败 ...

最新文章

  1. 人工智能对地球环境科学的推进
  2. 兰州办着眼大数据切实提升数据分析管理能力
  3. hdu 2005 第几天?(c语言)
  4. 总谐波失真80_谐波平衡法仿真(ADS)
  5. c语言中二维数组怎么,c语言中什么是二维数组
  6. ECCV18|这篇论文开源的车牌识别系统打败了目前最先进的商业软件(附Github地址)...
  7. c语言数组指定位置插入和删除_玩转C语言链表,单链表/双向链表的建立/遍历/插入/删除...
  8. Spring技术原理之Bean生命周期
  9. 大数据Hadoop原理学习(HDFS,MAPREDUCE,YARN)
  10. 2020 年,React.js 开发者如何更好地修炼内功?
  11. 数据库出现'\xF0\x9F\x98\xB8'
  12. Hessian 矩阵(黑塞矩阵)以及hessian矩阵奇异的用法
  13. 【历史上的今天】11 月 6 日:雅虎创始人诞生;Fedora Linux 正式发布;亚马逊进军智能家居
  14. 从pdf提取图片,有两个库可以提取fitz(要install pymupdf)、pdfminer(install pdfminer3k)
  15. 透明OLED显示器的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  16. 私藏版64页DevOps笔记免费分享
  17. win10雷电3接口驱动_[九猫win10系统]Intel处理器福利普及雷电3接口:微软/苹果强烈支...
  18. 个人百科怎么做,如何申请个人百度百科
  19. 第一章 Web MVC简介 —— 跟开涛学SpringMVC 博客分类: 跟开涛学SpringMVC webmvcjavaeespring跟开涛学SpringMVC Web MVC简介 1.1、We
  20. 201871010134-周英杰《面向对象程序设计(java)》第二周学习总结

热门文章

  1. Linux之VNC远程桌面安装和使用
  2. 高效能人士的七个习惯读后感与总结概括-(第一章)
  3. SVO 论文与代码分析总结
  4. 一年左右工作经验前端面试分享(vue 方向)
  5. novatel中DGPS和RTK以及ppp的terrraStar-x的记录
  6. css 使图片变清晰
  7. java utility工具类怎么导入_Utility.java
  8. virtual box linux 安装增强功能,在linux系统中安装virtualbox增强功能(增强包)的详细步骤...
  9. 查看你的姓氏排名和姓氏来源
  10. 小米 OJ 编程比赛 02 月常规赛 (Carryon 数数字)