2016-10-05 3 views
0

Je ne suis pas l'auteur original de ce bookmarklet mais j'essaie de l'améliorer/de le mettre à jour pour exécuter le script après le chargement de la page. Je voudrais frapper le bookmarklet pendant que la page se charge et elle exécutera la tâche quand elle chargera finalement. . Je l'ai essayé beaucoup de formes de $ (document) .ready et jQuery (document) .ready (fonction ($) sans succès S'il vous plaît aider MerciExécuter le script après chargement de la page dans javascript/jquery

javascript:(function(){ 
function setName(){ 
    jQuery.noConflict(); 
    jQuery("#456_linier").dblclick(); 
    jQuery("#456").val("First Name Last"); 
    jQuery("input[title='Save']").click(); 
} 

if (typeof jQuery == 'undefined') { 
    var s = document.createElement('script'); 
    s.setAttribute('src','https://code.jquery.com/jquery-3.1.1.min.js'); 
    s.setAttribute('type','text/javascript'); 
    document.getElementsByTagName('head')[0].appendChild(s); 
    } 
    setTimeout(setName, 1000); })(); 

Répondre

1

Note:. "Après le chargement de la page" peut dire beaucoup de choses, donc je l'ai interprété comme « après tout html chargé », déterminer c'est une interprétation assez robuste

Cela devrait prendre soin de vous, avec un peu de vanille Javascript.

document.addEventListener("DOMContentLoaded", function(event) { 
    console.log("Whatup Homie!!!"); 
}); 
+0

J'ai ajouté ceci avant 'fonction setName() {' et, malheureusement, le code encore didn » Je cours jusqu'à ce que j'appuie de nouveau sur le bookmarklet après que la page soit complètement chargée. – dcc

+0

Yo - ajout d'un ajout à ceci ci-dessous –

0

Envelopper la fonction déclaration ne le fera pas, et de toute façon je pense que setTimeout autofires la fonction si vous ne faites pas c'est comme un rappel. essayez ceci:

enter image description here

ou potentiellement cette stratégie, avec eventListener dans la fonction de charge elle-même:

enter image description here

+0

J'ai retiré l'original document.addEventListener et ajouté ce que vous mettez en bas (et en supprimant le 'setTimeout (setName, 1000);' c'était tout en bas) et maintenant rien ne se passe à tous et je ne reçois aucune erreur dans la console que je trouve étrange. Comment le code a été écrit original dans la question fonctionne, il ne fonctionne tout simplement pas jusqu'à ce que la page est entièrement chargée. Merci pour l'aide! – dcc