3

ブックマークレットでJavaScriptを使用して、Webサイトのフォーム要素にデータを入力しています。

javascript:var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click

これは機能します。ただし、作成したいのはブックマークレットで、ターゲットページを開き、そこに値を入力します。ただし、ページが読み込まれると、他のJavaScriptコードは実行されないようです。したがって、以下は機能しません。

javascript:window.location("mywebsite");var f = document.forms[0];
f.getElementsByTagName('input')[0].value = 'myname';
f.getElementsByTagName('input')[1].value = 'mypassword';
f.getElementsByTagName('input')[2].click;

また、コードの実行を遅らせるためにsetTimeoutを試しましたが、うまくいきませんでした。

javascript:var f = document.forms[0];setTimeout("f.getElementsByTagName('input')[0].value = 'myname';f.getElementsByTagName('input')[1].value = 'mypassword';f.getElementsByTagName('input')[2].click;",1000);

ターゲットページが完全に読み込まれたことがわかったら、スクリプトを読み込むにはどうすればよいですか?

4

2 に答える 2

8

私はGreaseMonkeyを個人的なルールとして使用せず、GreaseMonkeyを使用すべきでないブラウザー用にコーディングします。ブックマークレットは、システムがロックダウンされていて、Greasemonkey、Roboformなどのインストールが許可されていない場合にログインを自動化するための最小公分母のアプローチです。

私はたくさんのログインブックマークレットをコーディングし、あなたが何をしようとしているのかを考えました。ページがロードされた後に実行されるスクリプトを追加します。私は解決策を探してこのページに来ました、しかし今私はそれがうまくいかないことをうれしく思います。

これがセキュリティに与える影響について考えてみてください。読み込まれたページにキーストロークをエコーすることができれば、キーストロークをリッスンして他の場所に送信することもできます。これは非常に悪いことです。

ログインを自動化する場合は、次のようなブックマークレットパターンを試してください(改行を削除します)。

javascript:
    u='my_username';
    p='my_password';
    l='https://my_server/signon.aspx'; 
    if(location!=l)location=l;
    else{
     g=document.getElementById; 
     ue=(g('username') || g('userid') || g('login_name'));
     if(ue){
      ue.value=u;
      pe=(g('password') || g('pw') || g('pin'));
      pe.value = p;
      b=(g('submit_button') || g('signon_button') || g('login_button'));
      document.close();
      if(b)b.click();
     } 
    }

リンクを1回クリックすると、signon.aspxページに移動します。ロードされたページでユーザー名フィールドが使用可能になったら、同じリンクをもう一度クリックすると、フォームに入力して送信します。

つまり、思ったよりも1回クリックするだけですが、ブックマークレットをツールバーに配置しても、ほとんど遅延はありません。幸運を!

于 2011-04-14T20:38:45.653 に答える
2

GreasemonkeyはChromeに組み込まれています。これは、車輪の再発明を試みているように聞こえます。JSファイルをインストールすると、ページが読み込まれたときに実行されます。

于 2010-09-15T12:33:00.317 に答える