アプリ版:「スタンプのみでお礼する」機能のリリースについて

よろしくお願いいたします。

ページアクセスするたびに、
ページにある「login」というリンクボタンを1回だけ自動クリックさせて、
あとは停止したいのですが、

<script>
$(function(){
$('#login')[0].click();
});
</script>

とすると、loginボタンの自動クリックが、無限ループ状態になって止まりません。

現在のボタンのタグは下記のタグにしております。
<input type="submit" name="login" id="login" value="ログインする" />

ページアクセスするたびに、1回、もしくは数回だけボタンが自動クリックされて、
そのあとは停止する方法はございませんでしょうか?

現在、この部分である一日を費やしましたが、うまくいかず大変苦しんでおります。

なにとぞ、皆様の叡智をお借りしたく、
よろしくお願いいたします。

質問者からの補足コメント

  • 簡単に言えば、会員サイトのログイン専用ページで、数回、ボタンを自動クリックさせたいと考えており、メールアドレスやパスワードは自動で入力されるので、後はクリックを数回だけ自動でできないかと考えております。

    まだまだ初心者ですが、何とかチャレンジしようとしております。

    よろしくお願いいたします。

      補足日時:2017/01/16 18:40

A 回答 (6件)

if文間違えました。

失礼。

<script>
var isExcuteLogin = true;

$(function(){
if(window.name != window.location.href){
window.name = window.location.href;
$('#login')[0].click();
isExcuteLogin = false;
}
});
</script>
    • good
    • 0
この回答へのお礼

ありがとうございます!!!

出来ました!

自分では、到底及ばなかったと恥じつつも、
すばらしい経験とお知恵、感服いたします。

本当に、心から感謝しております!

本当に、本当に、ありがとうございました。

私も、これから勉強に励みたいと思います。

これから、ますます寒さが厳しくなってまいります。

お体ご自愛くださいませ。

失礼いたします。

お礼日時:2017/01/18 18:55

No.2とほぼ同じです。


window.nameの場合はブラウザのウインドウ名情報なのでリロードしても消えません

<script>
var isExcuteLogin = true;

$(function(){
if(window.name == window.location.href){
window.name = window.location.href;
$('#login')[0].click();
isExcuteLogin = false;
}
});
</script>
    • good
    • 0
この回答へのお礼

ありがとうございます。

感謝いたします

お礼日時:2017/01/18 18:57

後はログイン前とログイン後で違いがないか探してそれによって判断するしかないですね。


・ログインユーザ名など表示が変わっている箇所がないか
・URLが変更されていないか
・お勧めはできませんが下記のようにwindowの値に入れてしまう
http://samurai20000.hatenablog.com/entry/2009120 …
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。

・ログインユーザ名など表示が変わっている箇所がないか
・URLが変更されていないか

は、違いがないため、3つ目の「あまりお勧めできない方法」で申し訳ございませんが、やらせていただきたいと思います。

ありがとうございます。

ただ、リンク先のページを拝見したのですが、あまりにもシンプルな解説過ぎて、
このソースをどう活用すればいいのか、今一つわからないのですが。。。

すみません!

ご教授いただければ、ありがたく思います。

お手数をおかけして申し訳ございません。
よろしくお願いいたします

お礼日時:2017/01/18 16:47

ログインボタンでページがリロードされてしまうのかもしれませんね。


その場合は処理したいページをiframeに入れるぐらいでしょうか・・
    • good
    • 0
この回答へのお礼

ありがとうございます。

>ログインボタンでページがリロードされてしまうのかもしれませんね。

確かに、今、確認したらリロードされているようです。

説明不足で、すみません。

そうですよね。リロードされたら、常に1回という判断になりますよね。。。。

そのページ自体では、無理なんですかね。。。

お礼日時:2017/01/18 15:32

動作確認はしていませんが以下のようにフラグを設けてはどうでしょう



<script>
var isExcuteLogin = true;

$(function(){
if(isExcuteLogin){
$('#login')[0].click();
isExcuteLogin = false;
}
});
</script>
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

ソースまで書いていただき、感謝いたします。

ですが、すみません。

今、貼り付けてテストしたところ、クリックはするようですがやはり無限ループになります。。。

1回だけクリックするだけでいいんですが、どんな原因が考えられますでしょうか。

お手数をおかけして申し訳ございません。

よろしくお願いいたします。

お礼日時:2017/01/18 14:29

submitしているのですから、毎回新しいページだし今のままでは無理でしょうね


普通一度ログインしたら「ログインする」ボタン(submit)は表示されなくなる
ものじゃないですか?ページ構成がおかしいだけのような気がします。

どうしてもという場合は、ログインした場合のその状態が「ログインされている」
という表示がどこかに表示されると思うので、それを分岐として処理する
ことになると思います。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

私の説明が分かりずらいのだと思います。すみません。

簡単に言えば、会員サイトのログイン専用ページで、数回、ボタンを自動クリックさせたいと考えており、メールアドレスやパスワードは自動で入力されるので、後はクリックを数回だけ自動でできないかと考えておりました。

お礼日時:2017/01/16 18:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!