橙色闪光 2018-04-09 13:44 采纳率: 25%
浏览 4794
已采纳

chrome扩展如何模拟点击特定网页中的超链接?

楼主想利用chrome插件来自动点击某网页XXX.html中的连接,其中的连接形式如下:

<a class="item" href="/pageContent.htm"><img src="pic.jpg" title="全国地图" alt="全国地图" class=""></a>

楼主自己写了个插件小demo,但是跑不成功,具体manifest.json文件如下所示:

  "browser_action": {
      "default_icon": "icon/wuzang.png",
      "default_popup": "popup.html"
   },
    "permissions": [    
          "tabs", "http://*/*","https://*/*"     
     ],    
   "content_scripts": [ {
      "js": [ "jquery-1.7.2.min.js", "contentJs.js" ],
      "matches": [ "http://XXX.html]
   } ],
   "default_locale": "en",
   "description": "demo",
   "manifest_version": 2,
   "name": "demo",
   "version": "0.10"

ContentJs文件如下所示:

 function toMap(){
    console.debug("toMap")
    //选中该连接的url
    mapHref = $("#a").attr("href")
    alert(mapHref)
    if(mapHref == undefined) return;
    else goToLink(mapHref)
}

function goToLink(href){
    location.href = href;
    return;
}

function toMap2(){
    console.debug("toMap")
    map = $("a");
    map.click();
}




setInterval(toMap2(),5000)
setInterval(toMap(),5000)

这样写完了之后,页面只在刷新重新加载的时候弹出了tomap()方法中的alert提示框,显示undefined,请问有大神知道为什么这样做行不通吗

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2018-04-09 13:58
    关注

    setInterval需要函数句柄,
    setInterval(toMap2(),5000)
    setInterval(toMap(),5000)
    你这里是执行函数将返回值作为setInterval的执行的句柄了,所以只会输出一次,改下面的
    setInterval(toMap2,5000)
    setInterval(toMap,5000)

    还有mapHref = $("#a").attr("href")这句,你的是a标签,又不是id为a的控件,改为标签选择器,而不是id选择器
    mapHref = $("a").attr("href")

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 三种调度算法报错 有实例
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥200 询问:python实现大地主题正反算的程序设计,有偿
  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥20 java在应用程序里获取不到扬声器设备