Ich versuche, einen Wrapper für Twitter mit Electron (früher Atom Shell) zu schreiben.Wie ruft man eine JavaScript-Funktion auf einer von Electron gerenderten Webseite auf?
Meine main.js
Datei (es sieht aus auf das „Hello World“ Beispiel fast identisch, ich habe es an einem Ort gerade geändert):
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;
});
});
Ich versuche alert()
Funktion direkt nach mainWindow.loadUrl()
zu nennen, aber es wird nicht ausgeführt.
Ich verstehe, dass main.js
Datei ist wie die Server-Seite meiner App, aber die Frage ist ... Wie kann ich eine JavaScript-Funktion auf Seite aufrufen? Wo soll ich den Code schreiben?
Zum Beispiel möchte ich dies auszuführen:
$(document).ready(function() {
alert("Hurray!");
});
aufzurufen Obwohl der Code Sie die Warnung vorgeschlagen zeigt, sollten Sie klar zu verstehen, warum der Hauptprozess wollen Fragen Sie 'mainWindow' (Renderer-Prozess), um die Warnung anzuzeigen. Ich denke, dass die Trennung der Interessen zwischen Hauptprozess und Renderer eine ziemlich wichtige Frage ist. Aus diesem Grund ist es höchst wahrscheinlich das, was man vermeiden sollte, das Verhalten der Benutzeroberfläche des Rendererprozesses vom Hauptprozess zu kontrollieren. Wenn Ihr Hauptziel mit 'alert()' die Verfolgung von 'main.js' ist, können Sie meine Antwort für diese Frage lesen. Einige andere Debugging-Techniken werden dort notiert. –
@KonstantinGrushetsky, sehr guter Punkt, ich würde Sie zwei Mal upvote wenn ich könnte;) – Konstantin