Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to call a JavaScript function on a web page rendered by Electron?

Tags:

I'm trying to write a wrapper for Twitter using Electron (formerly Atom Shell).

My main.js file (it looks almost identical to the "Hello World" example, I just changed it in one place):

var app = require('app');  // Module to control application life. var BrowserWindow = require('browser-window');  // Module to create native browser window.  // Report crashes to our server. require('crash-reporter').start();  // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the javascript object is GCed. var mainWindow = null;  // Quit when all windows are closed. app.on('window-all-closed', function() {   if (process.platform != 'darwin')     app.quit(); });  // This method will be called when atom-shell has done everything // initialization and ready for creating browser windows. app.on('ready', function() {    // Create the browser window.   mainWindow = new BrowserWindow ({'width':1000,'height':600});   // and load the index.html of the app.   mainWindow.loadUrl('https://twitter.com');    // Emitted when the window is closed.   mainWindow.on('closed', function() {     // Dereference the window object, usually you would store windows     // in an array if your app supports multi windows, this is the time     // when you should delete the corresponding element.     mainWindow = null;   }); }); 

I try to call alert() function right after mainWindow.loadUrl() but it does not execute.

I understand that main.js file is like the server side of my app, but the question is... How can I call a JavaScript function on page? Where should I write the code?

For example, I want to perform this:

$(document).ready(function() {     alert("Hurray!"); }); 
like image 254
evlogii Avatar asked Mar 07 '15 22:03

evlogii


People also ask

Can you call a js function in HTML?

The first method is to call the JavaScript function in HTML. For this, you have to create a function then define this function either in the head section or body section of the HTML document. You can either create a link or a button and then an onclick() event is associated with them in order to call this function.

Does Electron work on web?

Electron is used to build cross-platform desktop apps, and is not generally used to build websites.


1 Answers

I have solved the problem. Here's the example code:

...  app.on('ready', function() {    ...    mainWindow.webContents.on('did-finish-load', function() {     mainWindow.webContents.executeJavaScript("alert('Hello There!');");   });    ...  }); 
like image 191
evlogii Avatar answered Oct 07 '22 17:10

evlogii