昨天受一个朋友所托,实现了一个在特定网页自动点击某超链接图片实现网页跳转功能的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. java.net.MalformedURLException: Illegal character in URL

    在进行接口测试时,意外发现返回结果报java.net.MalformedURLException: Illegal character in URL,意思是“在URL中的非法字符”,我的参数是经过ba ...

  2. POJ 2186-Popular Cows (图论-强联通分量Korasaju算法)

    题目链接:http://poj.org/problem?id=2186 题目大意:有n头牛和m对关系, 每一对关系有两个数(a, b)代表a牛认为b牛是“受欢迎”的,且这种关系具有传递性, 如果a牛认 ...

  3. Linux命令(2)- mv

    mv 功能:可以用来移动文件或者将文件改名. 格式:mv [选项] 源文件或目录 目标文件或目录 说明:mv命令将文件重命名或将其移至一个新的目录中.第二个参数类型是文件时,mv命令完成文件重命名,此 ...

  4. AngularJS学习--- AngularJS中的模板template和迭代器过滤filter step2 step3

    1.AngularJS 模板---step2: mvc(Model-View-Controller)模式在后端用的比较多,在前端也是一样的常用; 在AngularJS中,一个视图是模型通过HTML模板 ...

  5. 图解——VS发布网站详细步骤

    1.打开你的VS2012网站项目,右键点击项目>菜单中 重新生成一下网站项目:再次点击右键>发布: 2.弹出网站发布设置面板,点击<新建..>,创建新的发布配置文件: 输入你自 ...

  6. 解决 label 多行间距

    使用. 一个是间距,一个是行高,但是鉴于多行,都写的话,就相当于双倍行高了.我就用行高代替间距. self.textLabel.attributedText = [self getAttributed ...

  7. SDWebImage实现原理--两张图带你看懂

    SDWebImage底层实现有沙盒缓存机制,主要由三块组成:1.内存图片缓存,2.内存操作缓存,3.磁盘沙盒缓存 SDWebImage GitHub地址 版本4.0.0 一.SDWebImage时序图 ...

  8. OSIC Performance Bot

    https://github.com/lbragstad/keystone-performance

  9. c#开发Mongo笔记第七篇

    开发到这里遇到了一些问题,哪到这里想请教一下大家 今天我完成的是菜单功能, public class Menu { public ObjectId _id { get; set; } public i ...

  10. IOS s数据存储之归档解档

    #import <Foundation/Foundation.h> @interface Student : NSObject <NSCoding>; @property(no ...