从外部程序触发Firefox(或任何其他浏览器)中的Javascript函数

时间:2014-03-24 15:48:09

标签: javascript firefox triggers external

我想通过按键来触发已经存在的网站上的Javascript功能。

示例:触发my_function('我的参数1');当我按下键盘上的1键时。

我可以在Firefox的调试器控制台上手动输入命令,它可以工作。但我无法想出一种从外部程序触发Javascript函数的简单方法。我可以使用Firefox命令行吗? EventGhost? AutoHotKey?我应该写一个Firefox扩展吗?

如果您的解决方案意味着使用其他网络浏览器,那么欢迎您!

2 个答案:

答案 0 :(得分:0)

我建议你看看https://api.jquery.com/keydown/。 Jquery可能是解决方案,但问题不明确。您正在谈论的网站是您的网站还是您想从外部注入此触发事件?你想每次注入这个触发器吗?

如果它只是一夜情,您可以使用浏览器控制台,但如果不是,您可能会对开发附加组件或者油脂扩展器感兴趣。

更新:Yo可以使用eventghost,特别是窗口插件http://www.eventghost.org/docs/pluginlist.html来触发firefox上的按键。现在,每次访问时都必须在页面中注入一个javascript事件处理程序,大部分工作都已完成。

更新2: 这是基本的插件,;)玩得开心

var self = require('sdk/self');
exports.main = function() {
    require('sdk/page-mod').PageMod({
        include: '*.org',
        contentScript: 'document.onkeypress = function (e) {console.log(e.which);}'
    });
}

要使用这个东西,请从mozilla网站下载cfx-tools(抱歉,我不能发布超过2个链接)按照第一个教程(一定要阅读如何使用cfx工具)并准备好使用我在上面发布的代码。

  1. 将“include”值替换为您感兴趣的网站名称
  2. 将console.log(e.which)替换为您的代码
  3. 最后的建议:

    document.onkeypress = function (e) { if(e.which == 49){ /* trigger my function if I press 1*/}}

    再见

答案 1 :(得分:0)

好的!我终于创建了一个AutoHotkey脚本和Chrome,因为:

  • 当Flash全屏时我遇到了Javascript注入的焦点问题
  • Chrome接受在Omnibox中输入的javascript命令

以下是脚本管理频道更改请求的方式:

  • 按Escape退出全屏
  • 点击网页的空白区域以确保其获得焦点
  • 按F6激活Omnibox
  • 过去需要更改频道的Javascript代码
  • 点击Flash视频区域
  • 按F返回全屏

我不会在这里粘贴脚本,因为它很长并且Stack Overflow代码解析器真的不喜欢AutoHotkey代码!只要问你是否想要它。

@EdoPut建议更清洁,但它没有解决Flash全屏时的焦点问题。无论如何,再次感谢EdoPut的努力。