2016-10-05 11 views
0

私はこのブックマークレットの元の作家ではありませんが、ページが読み込まれた後にスクリプトを実行するために改良/更新しようとしています。ページが読み込まれるときにブックマークレットをヒットしたいと思います。最終的に読み込んだときにタスクを実行します。 。私は無駄に$(ドキュメント).readyとjQuery(ドキュメント).ready(関数($)の多くの形態を試みた支援してくださいあなたのjavacript/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); })(); 

答えて

1

注意をありがとう:「ページが読み込ま後に」することができます多くのことを意味するので、私はそれはかなり強力な解釈だ考え出す、「すべてのHTMLがロードされた後に」としてそれを解釈

これは少しバニラJavascriptをして、あなたの世話をする必要があります。

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

私は「関数のsetName(){ 'と、残念ながらまだなかったのコード'前にこれを追加ページが完全にロードされた後にブックマークレットを再度押すまで実行しないでください。 – dcc

+0

Yo - これを以下に追加しました –

0

機能をラッピング宣言はそれをしません、とにかく私はあなたがしない場合、関数をautofires setTimeoutと思うそれはコールバックが好きです。この方法を試してください。

enter image description here

または潜在この戦略、ロード機能自体の内部のEventListenerで:

enter image description here

+0

元のdocument.addEventListenerを削除し、一番下に置いたものを追加しました。(最下部にあった 'setTimeout(setName、1000);'を削除しました。すべてと私は奇妙に思っているいずれかのコンソールのいずれかのエラーを取得していないよ。質問に書かれたコードが元々どのように機能していたかは、ページが完全に読み込まれるまでは機能しません。助けてくれてありがとう! – dcc

関連する問題