2011-11-10 78 views
7

運行在桌面上的Node.js是否可以生成Chrome瀏覽器窗口?我想在Node.js接收事件時啓動一個提供窗口大小和位置的Chrome瀏覽器。Node.js可以調用Chrome嗎?

sys shell命令是唯一的方法嗎?

+1

您想在哪個操作系統上啓動Chrome? –

回答

-3
var exec = require('child_process').exec 

exec('open firefox www.google.pt' , function(err) { 
if(err){ //process error 
} 

else{ console.log("success open") 
} 

}) 

這將打開火狐在谷歌網頁從的NodeJS腳本,鉻應該是相同的

+1

什麼是「開放」命令?這是OSX嗎? –

+1

'open chrome'在我的Mac OSX 10.8.2上沒有做任何事情(顯然安裝了Chrome) –

+0

不適用於Chrome瀏覽器! – Adaptabi

0

是的,我想你會需要逃離殼然後打開鉻。

0

節點只能調用UNIX/Windows命令,因此只能使用sys shell命令。

5

我打開窗戶一新的Firefox標籤瀏覽: https://github.com/Sequoia/FTWin/blob/master/FTWin.n.js

最顯着的部分:

var cp = require('child_process'), 
    url_to_open = 'http://duckduckgo.com/'; 

cp.spawn('c:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', ['-new-tab', url_to_open]); 

注:

  1. 跑過完整路徑的Firefox到child_process.spawn
  2. 斜線的逃逸
  3. 傳交換機/參數firefox.exe:作爲cp.spawn的按開關的陣列(一個條目的第二個參數傳遞)。

這個調用相當於在Windows命令行鍵入"c:\Program Files (x86)\Mozilla Firefox\firefox.exe" -new-tab http://duckduckgo.com

對於鉻,你想要的東西就像D:\Users\sequoia\AppData\Local\Google\Chrome\Application\chrome.exe --new-tab http://duckduckgo.com/我會讓你的工作你自己的child_process版本;)

參考文獻:

http://peter.sh/experiments/chromium-command-line-switches/

http://nodejs.org/docs/v0.3.1/api/child_processes.html

+0

要啓動Chrome瀏覽器與Windows中的選項我試過, 'cp.spawn('c:\\ Program Files(x86)\\ Google \\ Chrome \\ Application \\ chrome.exe',['--user-data-dir ','C:\ chrome-path']'看起來'C:\ chrome-path'在這種情況下被認爲是url。任何想法都可以解決這個問題?謝謝! – Prasad19sara

+0

嘗試'['--user-data-dir = C:\ chrome-path']'?或者換成'['--user-data-dir',''C:\ chrome-path'']'或者嘗試轉義斜線'['--user -data-dir','C:\\ chrome-path']'祝好運! –

4

隨着opn

const opn = require('opn'); 
opn('http://siteurl.com/', {app: ['google chrome']}); 
0

結帳https://www.npmjs.com/package/chrome-launcher

啓動Chrome瀏覽器:

const chromeLauncher = require('chrome-launcher'); 

chromeLauncher.launch({ 
    startingUrl: 'https://google.com' 
}).then(chrome => { 
    console.log(`Chrome debugging port running on ${chrome.port}`); 
}); 

啓動無頭鉻:

const chromeLauncher = require('chrome-launcher'); 

chromeLauncher.launch({ 
    startingUrl: 'https://google.com', 
    chromeFlags: ['--headless', '--disable-gpu'] 
}).then(chrome => { 
    console.log(`Chrome debugging port running on ${chrome.port}`); 
}); 

鉻發射器打開一個遠程調試端口,因此你也可以使用DevTools protocol控制瀏覽器實例。

Puppeteer是另一種啓動Chrome並使用高級API與其交互的方式。

相關問題