如何从Firefox扩展名访问网页数据? [英] How to access webpage data from a firefox extension?

查看:141
本文介绍了如何从Firefox扩展名访问网页数据?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经设法得到一个在Firefox中运行的自定义非常基本的扩展。



接下来要做的是:


  1. 检查用户是否在所需的网页上

  2. 如果是,请检查每个回发页面上是否包含
  3. 的隐藏元素
  4. 如果发现:使用 string 参数
  5. 启动外部应用程序

我在网页上有一些JavaScript的经验,但我不知道如何注册我的脚本,以在Firefox中打开的每个网页上运行,以及如何访问页面内的元素。



提示在哪里开始将不胜感激。


编辑:我想到了如何在每个页面上运行我的代码:




  addEventListener(DOMContentLoaded,doSomething,false); 




EDIT2:我可以访问页面数据在处理程序中使用event.originalTarget,并使用Components.interfaces.nsIProcess运行应用程序



解决方案

所以什么是您的DOM遍历和外部程序启动。



您的DOM遍历可以通过多种方式完成。但是,这是一个简单的例子。

  var inputs = document.getElementsByTagName(input); 
for(var idx = 0; idx< inputs.length; idx ++){
var tp = inputs [idx] .attributes ['type'] value
console.log(tp) ;
if(tp =='hidden'){
//在这里抓住你的文字并启动应用程序。
}
}

外部应用程序根据这个启动 post

  var file = Components.classes [@ mozilla.org/file/local;1] 
.createInstance(Components.interfaces.nsILocalFile);
file.initWithPath(c:\\myapp.exe);
file.launch();


I have managed to get a custom very basic extension running in Firefox.

What I want to do next is:

  1. Check if the user is on a desired webpage
  2. If yes: check the page on each postback for a hidden element containing a string
  3. If found: launch an external app with string parameter

I have some experience with javascript on webpages, but I don't know how to register my script to run on each webpage opened in firefox and how to access elements within a page.

Hints on where to start would be appreciated...

EDIT: I figured out how to run my code on each page:

addEventListener("DOMContentLoaded", doSomething, false);

EDIT2: I could access page data with event.originalTarget in the handler and run apps with Components.interfaces.nsIProcess

解决方案

So what is leftover for you is the DOM traversal and the external program launching.

Your DOM traversal can be done in so many ways. However, here is a simple take

var inputs = document.getElementsByTagName("input");
for (var idx=0; idx<inputs.length; idx++){
    var tp = inputs[idx].attributes['type'].value
    console.log(tp);
    if (tp == 'hidden'){
       // grab your text at here and launch the app.
    }
}

External application launching according to this post

var file = Components.classes["@mozilla.org/file/local;1"]
                     .createInstance(Components.interfaces.nsILocalFile);
file.initWithPath("c:\\myapp.exe");
file.launch();

这篇关于如何从Firefox扩展名访问网页数据?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆