昨天受一个朋友所托,实现了一个在特定网页自动点击某超链接图片实现网页跳转功能的JavaScript脚本。

  工具就是Firefox的Greasemonkey扩展插件。代码如下:

 // ==UserScript==
 // @name          脚本名字
 // @namespace     http://weibo.com/p/1005052581834920
 // @version       20150303
 // @description   自动点击特定超链接实现网页跳转
 // @include       http://shop.snh48.com/flow.php?step=cart
 // @require       http://shop.snh48.com/js/common.js
 // @run-at        document-end
 // ==/UserScript==

 var imgArray = document.getElementsByTagName('img');
 for (var i = 0; i < imgArray.length; i++) {
     if (imgArray[i].src == 'http://shop.snh48.com/themes/snh48/images/checkout.gif') {
         imgArray[i].click();
     }
 }

  其中1~9行用来向Greasemonkey描述这个脚本自身的信息:

  1. @name是用户脚本的名字,它将会在安装脚本时显示在安装对话框,之后会显示在“管理用户脚本”对话框中,尽量用好识别的名字。
  2. @namespace是一个URL,Greasemonkey用它来区分名称相同但是作者不同的脚本。建议用个人网页地址,比如微博主页。
  3. @version记录脚本的版本号,可以用1.0、1.1、2.0这种常用版本号或脚本编写日期等。
  4. @description是脚本功能的描述,它将会在安装脚本时显示在安装对话框之后会显示在“管理用户脚本”对话框中。尽量言简意赅。
  5. @include是一个URL,Greasemonkey通过它知道要在哪些网站上执行该脚本。可以用多行指定多个网址,也可以用通配符*来代替域名或路径中的部分字符,这样可以将子网页都包括进来。
  6. @exclude也是一个URL,Greasemonkey通过它知道要在哪些网站上必不执行该脚本,它的权限比@include高。
  7. @require是其他脚本名字,它告诉Greasemonkey该脚本要想工作还需依赖哪些js脚本,可以用多行指定多个脚本。

  下面代码主体部分了,在上面这个例子中,首先通过document.getElementsByTagName函数获得该网页的所有img,然后用for循环扫描一遍,找到目标图片后用click函数跳转就行了。

  还有两点需要一提的:

  1. 判断图片的src值时需要在网页源代码中的src值前加上父目录,在上面这个例子中,themes/snh48/images/checkout.gif是目标图片在网页中的src值,但做判断时还需在前面加上父目录http://shop.snh48.com/。
  2. 如果本身网页中有给目标图片加上ID标签,那么直接用document.getElementById函数就可以定位到目标图片,不需用for循环逐个判断了,这也告诉我们编写前端网页时多用ID标签,毕竟方便。

通过Greasemonkey实现网页图片自动点击的更多相关文章

  1. Mac 下安装python3.7 + pip 利用 chrome + chromedriver + selenium 自动打开网页并自动点击访问指定页面

    1.安装python3.7https://www.python.org/downloads/release/python-370/选择了这个版本,直接默认下一步 2.安装pipcurl https:/ ...

  2. js中网页图片自动更换的效果

    <script> var arr=new Array(); arr[]="url(images/city.jpg)"; arr[]="url(images/d ...

  3. 【图文详解】python爬虫实战——5分钟做个图片自动下载器

    python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...

  4. 本元鼠标自动点击器 v1.31 官方绿色版

    软件名称: 本元鼠标自动点击器软件语言: 简体中文授权方式: 免费软件运行环境: Win 32位/64位软件大小: 516KB图片预览: 软件简介:本元鼠标自动点击器是一款免费绿色版的鼠标自动点击器, ...

  5. python爬虫实战——5分钟做个图片自动下载器

      python爬虫实战——图片自动下载器 制作爬虫的基本步骤 顺便通过这个小例子,可以掌握一些有关制作爬虫的基本的步骤. 一般来说,制作一个爬虫需要分以下几个步骤: 分析需求(对,需求分析非常重要, ...

  6. 【转】Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址

    Android循环滚动广告条的完美实现,封装方便,平滑过渡,从网络加载图片,点击广告进入对应网址 关注finddreams,一起分享,一起进步: http://blog.csdn.net/finddr ...

  7. 【Python开发】【神经网络与深度学习】网络爬虫之图片自动下载器

    python爬虫实战--图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识(没看的赶紧去看)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap show ...

  8. JS图片自动和可控的轮播切换特效

    点击这里查看效果:http://hovertree.com/texiao/js/1.htm HTML文件代码如下: <!DOCTYPE html> <html xmlns=" ...

  9. c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 .

    // c#控制IE浏览器自动点击等事件WebBrowser,mshtml.IHTMLDocument2 分类: c# 2013-02-06 15:18 3008人阅读 评论(0) 收藏 举报 可以实现 ...

随机推荐

  1. Oracle SQL优化一(常见方法)

    1.表访问方式优化: a)普通表优先“Index Lookup 索引扫描”,避免全表扫描 大多数场景下,通过“Index Lookup 索引扫描”要比“Full Table Scan (FTS) 全表 ...

  2. [转载] Android逃逸技术汇编

    本文转载自: http://blogs.360.cn/360mobile/2016/10/24/android_escape/ 摘    要 传统逃逸技术涉及网络攻防和病毒分析两大领域,网络攻防领域涉 ...

  3. removeClass() 方法

    删除元素的class类别用removeClass() 方法,与addClass()方法对应.具体使用如下: 如果要删除 p 标记是 cls0 的类别,可以使用如下的代码: $("p" ...

  4. constraint更新表列约束默认值

    --更新约束 alter TABLE [dbo].[Sk_Recruit] drop constraint DF_Sk_Recruit_lastcommenttime go   alter TABLE ...

  5. Java核心知识点学习----使用Condition控制线程通信

    一.需求 实现线程间的通信,主线程循环3次后,子线程2循环2次,子线程3循环3次,然后主线程接着循环3次,如此循环3次. 即:A->B->C---A->B->C---A-> ...

  6. std::reverse_iterator::base

    google chromium base MRU_Cache 支持反向erase iterator Erase(iterator pos) {  deletor_(pos->second);  ...

  7. 递推 N三角形问题

    Description 用N个三角形最多可以把平面分成几个区域? Input 输入数据的第一行是一个正整数T(1<=T<=10000),表示测试数据的数量.然后是T组测试数据,每组测试数据 ...

  8. Entity Framework Code First 学习

    1.添加entityframework 项目-管理解决方案的 NuGet 程序包-联机-Entity Framework 2.code first Migration 工具->库程序包管理器-& ...

  9. tomcat 虚拟主机配置

    1.虚拟主机 服务器接收到客户端请求时,会根据HTTP请求报文中的HOST头选择web站点进行响应.发送请求时,url中的主机名会被作为HTTP请求报文中的HOST发送给服务器.因此,可以根据不同的H ...

  10. HTML5 Canvas rect()和strokeRect() 的区别

    看到 Canvas rect()和strokeRect()时,发现这俩效果一样.仔细区分后发现: 他们都接受相同的参数,但rect() 只是创建一个矩形,并不绘制,如图: 要看到实际效果需要使用 st ...