2014-03-24 64 views
0

我想觸發一個已經存在的網站,我不按一個鍵自己的JavaScript函數。在Firefox觸發JavaScript函數(或任何其他瀏覽器)從外部程序

實施例:觸發創建my_function( '我的參數1');當我按下鍵盤上的1鍵時。

我可以手動輸入Firefox的調試器控制檯上的命令,它的工作原理。但我無法想象從外部程序觸發Javascript功能的簡單方法。我可以使用Firefox命令行嗎? EventGhost? AutoHotKey?我應該寫一個Firefox擴展嗎?

如果您的解決方案意味着使用其他網絡瀏覽器,歡迎您!

回答

0

行!我終於創建了一個AutoHotkey的腳本和Chrome,因爲:

  • 我遇到的重點問題JavaScript注入時,閃光燈是全屏
  • 鉻接受

這裏是如何的腳本管理着一個網址列中輸入JavaScript命令頻道切換請求:

  • 按Escape退出全屏
  • 單擊網頁的空白區域,以確保它獲得焦點
  • 按F6鍵激活網址列
  • 過去的Javascript代碼需要改變通道
  • 點擊Flash視頻領域
  • 按F返回全屏

我不在這裏粘貼腳本,因爲它很長,堆棧溢出代碼解析器真的不喜歡AutoHotkey代碼!只是問你是否想要它。

@EdoPut建議更清潔,但它並沒有解決Flash全屏時的焦點問題。無論如何,再次感謝EdoPut的努力。

0

我建議你看看這https://api.jquery.com/keydown/。 Jquery可能是解決方案,但問題並不清楚。您所談論的網站是您的網站還是您想從外部注入此觸發事件?你想每次注入這個觸發器嗎?

如果它只是一個一夜情,你可以使用瀏覽器控制檯,但如果它不是你可能有意開發一個附加或Greasemonkey的推廣。

更新:喲可以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-工具(對不起,我不能發佈超過2個鏈接)請遵循第一個教程(請務必閱讀如何使用cfx工具),並準備好使用我在上面發佈的代碼。

  1. 取代 「包括」 值與您感興趣的站點的名稱
  2. 與您的代碼替換的console.log(e.which)

最後建議:

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

再見

+0

謝謝你的建議。我會盡量更清楚:網站允許我看電視,但我必須關閉全屏,然後再次點擊全屏。我希望能夠使用遙控器更換頻道。我注意到,我可以在Firefox調試控制檯中使用JavaScript命令全屏改變頻道。我認爲從Eventghost(使用Firefox命令行)發送JavaScript命令會很容易,但事實並非如此。我確定存在一個簡單的解決方案,所以我在開始開發擴展之前要求。編輯:該網站不是我的,它不是一個晚上s – Toz

+0

感謝您的更新。我嘗試使用GreaseMonkey注入JavaScript,但Flash視頻全屏後,事件不會立即生效。我正在尋找一種方法來使用Firefox命令行在網頁上觸發javascript函數,但似乎我必須爲此創建一個插件... – Toz

+0

再次感謝您在更新2處的詳細解答。我是害怕問題將與我用GreaseMonkey注入描述的問題相同:當Flash視頻全屏時,事件不會觸發。無論如何,也許我會盡力確定我什麼時候有空。再次感謝您的努力! – Toz

相關問題