soy un novato con tampermonkey y quiero completar automáticamente un formulario pero no tengo identificación ... ya probé algunos códigos pero no funciona
fuente
<input type="text" name="user_email" class="form-control-input" value="" placeholder="Enter your Email" onselectstart="return false" onpaste="return false;" oncopy="return false" oncut="return false" ondrag="return false" ondrop="return false" autocomplete="off">código ya probado
var mail = "test@gmail.com"; document.getElementsByClassName('form-control-input').value = mail;Personalmente, prefiero usar jQuery sobre javascript puro en tampermonkey porque me da más control, como cargar el script cuando el DOM está listo. es decir, envuelva la función en un $ (documento) .ready (función () ...
puedes probar esto (asegúrate de cambiar el @match) 👇
// ==UserScript== // @name New Userscript // @namespace http://tampermonkey.net/ // @version 0.1 // @description try to take over the world! // @author You // @match <your site here> // @icon https://www.google.com/s2/favicons?sz=64&domain=undefined. // @grant none // @require http://code.jquery.com/jquery-3.4.1.min.js // ==/UserScript== (function() { 'use strict'; $(document).ready(function() { var mail = "test@gmail.com"; $('[name=user_email]').val(mail); }); })();Cambie class a id o querySelector . El uso de getElementsByClassName() devolverá una colección de NodeList. Así que piensa en una matriz en este caso. Si usa getElementsByClassName() , le está diciendo al DOM "Oye, quiero trabajar en varias cosas" , por lo que para agregar ese valor de string a "esta cantidad de cosas" , debe revisarlas una por una y dales el value , es decir, tendrás que recorrer esta NodeList y hacer lo que quieras en "esta cantidad de cosas" .
Cuándo usar getElementsByClassName
En su caso, dado que solo está trabajando en una entrada, es más fácil seleccionar usando id e ir con eso. Si tiene, por ejemplo, 10 campos de input diferentes para los que necesita usar un prefill , use getElementsByClassName() pero si solo tiene 2 o 3 campos, le recomiendo que le dé a cada uno una id única y la use.
var mail = "test@gmail.com"; document.getElementById('form-control-input').value = mail <input type="text" name="user_email" id="form-control-input" value="" placeholder="Enter your Email" onselectstart="return false" onpaste="return false;" oncopy="return false" oncut="return false" ondrag="return false" ondrop="return false" autocomplete="off">