Skip to content

Instantly share code, notes, and snippets.

@nbqx
Created March 2, 2011 10:07
Show Gist options
  • Save nbqx/850726 to your computer and use it in GitHub Desktop.
Save nbqx/850726 to your computer and use it in GitHub Desktop.
easy safari reload
//reload safari via applescript
//usage:
//var sys = require('sys');
//var SafariReloader = require('./safari_reloader');
//sys.puts('Hello! This is Main');
//(new SafariReloader({
// target:'safari', //or webkit
// onError:function(err){console.log(err.toString())},
// onExit:function(sc){console.log('Safari Reloaded!')}
//}))();
var spawn = require('child_process').spawn;
var safari = 'tell application "Safari" to do JavaScript "location.reload(true);" in document 1';
var webkit = 'tell application "WebKit" to do JavaScript "location.reload(true);" in document 1';
SafariReloader.prototype = new process.EventEmitter();
function SafariReloader(opt){
var self = this;
var opt = opt || {};
if(opt.target==undefined) opt.target = 'safari';
var appscrt = (opt.target=="safari")? safari : webkit;
self.on('error', opt.onError || function(err){console.log('Err: '+err)});
self.on('bye', opt.onExit || function(sc){console.log('Exit: '+sc)});
return function(){
var doReload = spawn("osascript",["-e",appscrt]);
doReload.stderr.on('data',function(data){self.emit('error',data)});
doReload.on('exit',function(data){self.emit('bye',data)});
}
}
module.exports = SafariReloader;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment