2017-07-21 1 views
0

Vous connaissez tous package NPM ouvert: https://www.npmjs.com/package/open L'utilisation de ce paquet, on peut écrire le code suivant:Comment injecter un script en utilisant le code node.js?

var open = require('./node_modules/open/lib/open.js') 
open('http://www.cnn.com') 

et l'activer par:

$ node app.js 

ouvrira une fenêtre de navigateur de cnn.com .

Je veux que mon script ouvre ce site et injecte du code sur la console. Je veux dire que le navigateur se comporte comme je l'ai cliqué F12, je suis allé à l'onglet « console » et tapé dans la console le code:

alert('Hello World') 

Savez-vous comment le faire?

+0

Je ne pense pas que ce soit possible pour des raisons évidentes de sécurité. –

+0

pourquoi? Si je peux ouvrir le navigateur, entrez "www.cnn.com", cliquez sur F12 et tapez "alert ('hello world')" dans la console, pourquoi ne puis-je pas écrire du code qui le fait? Où est la préoccupation de sécurité ici? – CrazySynthax

+0

Est-ce que [ma réponse] (https://stackoverflow.com/questions/45239827/how-to-inject-script-using-node-js-code/45241731#45241731) ci-dessous vous a aidé? Des commentaires? – rsp

Répondre

1

Le module open est utilisé pour "Ouvrir un fichier ou une URL dans l'application préférée de l'utilisateur".

Il peut ouvrir l'application préférée (un navigateur dans ce cas) mais il ne peut pas le contrôler. En fait, il ne sait même pas quel sera le navigateur (ou même si ce sera un navigateur). Ce que vous demandez peut être obtenu avec des outils comme PhantomJS ("PhantomJS est un script WebKit sans tête avec une API JavaScript."), Nightmare.js ("Une bibliothèque d'automatisation de haut niveau.") Ou CasperJS ("test de script Navigation & pour PhantomJS et SlimerJS"), voir:

+0

1. Lorsque vous dites que "phantomjs" est "sans tête", est-ce que cela signifie qu'aucun navigateur n'est réellement ouvert et que toutes les opérations se déroulent "en coulisse"? 2. Peut-on utiliser nightmare.js pour ouvrir un navigateur et y voir visuellement le site web? 3. Il sera vraiment utile si vous pouvez écrire du code qui injecte un script aux outils de développement. – CrazySynthax