2017-07-18 2 views
0

J'essaie de créer un bookmarklet qui remplit les champs sur le formulaire de ma page actuelle.JS: Bookmarklet - Créer un bookmarklet qui déclenche un fichier js local pour remplir des champs dans un formulaire de la page en cours

Voici un script simple qui remplit 1 champ avec une valeur donnée:

javascript:(function(){d=document;e=d.getElementById("ember469");e.value="[email protected]";e.blur();})(); 

Cela fonctionne correctement si je magasin est comme un signet. Maintenant, je veux stocker ce JS sur un fichier local dans ma machine parce que je voudrais remplir X nombre de champs et je ne veux pas maintenir le code à partir du bookmarklet.

J'ai essayé de créer un bookmarklet qui appelle mes js locales "de test.js" en utilisant:

javascript:(function(){var js=document.createElement('script');js.setAttribute('src', 'C:/Users/path/to/my/sample.js');document.body.appendChild(js);}()); 

J'ai eu cette idée de ces liens:
Link 1
Link 2

Voici mon exemple. js le contenu:

function(){d=document;e=d.getElementById("ember469");e.value="[email protected]";e.blur();} 

J'ai regardé aro SO SO mais je ne peux pas trouver un échantillon qui charge un js local, la plupart des échantillons sont en train de charger un fichier js en ligne.

Je suis incapable de faire ce travail. Qu'est-ce que je rate?

Toute aide est appréciée !!

MISE À JOUR: Basé sur @ réponse de Shugar ci-dessous, je l'ai mis à jour mes deux sample.js et bookmarklet. Je peux voir la balise script insérée sur la page mais ce script ne se déclenche pas. Le champ n'est pas peuplé.

enter image description here

Répondre

1

J'espère que la façon suivante pour vous. (Modifié le code juste posté un peu.)


bookmarklet:

javascript: (function() { 
    var js = document.createElement('script'); 
    js.setAttribute('src', 'C:/Users/path/to/my/sample.js'); 
    document.body.appendChild(js); 
})(); 


sample.js:

(function() { 
    d = document; 
    e = d.getElementById("ember469"); 
    e.value = "[email protected]"; 
    e.blur(); 
})(); 
+0

Salut, merci pour votre réponse! J'ai mis à jour ma question avec les résultats. Je peux voir que la balise de script est insérée mais le sample.js n'est pas viré - le champ n'est pas rempli. – iamkenos

+0

Salut, êtes-vous sûr que les actions de 'sample.js' ne se font pas virer? Essayez d'ajouter la première ligne comme 'alert (" From 'sample.js' ");' dans votre fonction anonyme. Il me semble que les id comme "ember469" sont juste changés sur la page web. – Shugar

+0

Oui. J'ai vérifié l'élément. Juste maintenant j'ai essayé avec un exemple d'alerte comme vous avez suggéré et même cela n'a pas fonctionné. Vraiment je me demande ce que je manque. – iamkenos