Sleipnir Script BBS



タイトルRe: 自動ログインができません
カテゴリ: 1.xx互換スクリプト
記事No: 331 [関連記事]
投稿日: 2007/11/18(Sun) 16:38
投稿者okb
「Sleipnirを初心者がいじりまくるブログ」の、Fenrir User Communityのログインページのスクリプトを作ったのですが、ログインボタンを押してくれません。
作成手順は、次のとおりです。
1.ログイン画面を表示。
2.ID入力>タブ押下>パスワード入力>タブ押下
3.AutoLoginCreaterを実行
4.ボタン上で右マウス
5.指示に従って入力

1.66のときは、こんな感じだったと思います。

またログイン後、たとえば質問フォーラムhttp://community.tabbrowser.jp/forum/viewforum.php?f=1
を開きたとき、どこを修正すればいいでしょうか?

以上、よろしくお願いします。



// ==UserScript==
// @name 自動ログイン : Fenri_Community
// @author "Auto Login Creator(2007/03/22)"
// @include http://community.tabbrowser.jp/forum/login.php
// @type SleipnirScript
// ==/UserScript==

// このスクリプトの改変は自由に行っていただいてかまいません。

// 任意の値を設定してください。
var savePassword  = true;        // パスワードを Script.ini に保存する:true、保存しない:false
var accountPromptName_0  = "ユーザID";        // アカウント入力ダイアログの項目名
var passwordPromptName_0 = "パスワード";        // パスワード入力ダイアログの項目名
// 設定ここまで。

var Slpnr = new ActiveXObject("Sleipnir.API");
var document = _document;
var window;
var t;

var loginPage     = "communitytabbrowserjp";
var accountTag_0  = 0;
var passwordTag_0 = 1;
var uncheckTag_0  = 2;
var formNumber    = 1;
var submitTag     = "INPUT";
var submitNumber  = 12;

var account_0     = "";
var password_0    = "";

Main();

window = null;
document = null;
Slpnr = null;

function Main(){
    window = document.parentWindow;

    account_0  = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Account_0", "");
    password_0 = Slpnr.GetProfileStringCipher("AutoLogin_" + loginPage, "Password_0", "");

    // ユーザーから入力を促す。
    if (account_0 == "") {
        account_0 = window.prompt(accountPromptName_0 + "を入力して下さい(値はScript.ini に保存されます)。", "");
        if (account_0 == null){
            account_0 = "";
        }
        else {
            account_0 = String(account_0.match(/^[^\x00]*/));
        }
        Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Account_0", account_0);
    }
    if (savePassword){
        if (password_0 == ""){
            try {
                password_0 = Slpnr.MaskedInputBox(passwordPromptName_0 + "を入力してください(値は Script.ini に保存されます)。", "");
            }
            catch(error){
                password_0 = window.prompt(passwordPromptName_0 + "を入力してください(値は Script.ini に保存されます)。", "");
            }
            finally {
                if (password_0 == null){
                    password_0 = "";
                }
                else {
                    password_0 = String(password_0.match(/^[^\x00]*/));
                }
                Slpnr.WriteProfileStringCipher("AutoLogin_" + loginPage, "Password_0", password_0);
            }
        }
    }
    else{
        if (password_0 != ""){
            if (window.confirm("Script.ini にこのページのパスワードが保存されている場合、削除します。\n" +
                               "よろしいですか?(OK:削除する、キャンセル:削除しない)")){
                try {
                    Slpnr.DeleteProfileKey("AutoLogin_" + loginPage, "Password_0");
                }
                catch(error){
                    Slpnr.WriteProfileString("AutoLogin_" + loginPage, "Password_0", "");
                }
            }
        }
        try {
            password_0 = Slpnr.MaskedInputBox(passwordPromptName_0 + "を入力してください", "");
        }
        catch(error){
            password_0 = window.prompt(passwordPromptName_0 + "を入力してください", "");
        }
        finally {
            if (password_0 == null){
                password_0 = "";
            }
            else {
                password_0 = String(password_0.match(/^[^\x00]*/));
            }
        }
    }

    if (!DoLogin(document)){
            sleipnir.Echo("AutoLogin Error : Fenri_Community.user.js");
            sleipnir.Echo("    ログインできませんでした。");
    }
}

function DoLogin(objDoc){
    var document = objDoc;
    try {
        document.forms(formNumber).elements(accountTag_0).value = account_0;
        document.forms(formNumber).elements(passwordTag_0).value = password_0;
        document.forms(formNumber).elements(uncheckTag_0).checked = false;
        if (Slpnr.CtrlDown){
            sleipnir.beep();
        }
        else {
            document.all.tags(submitTag).item(submitNumber).click();
        }
        return true;
    }
    catch(error){
        return false;
    }
}

- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- AutoLoginCreator.js 【1.xx互換スクリプト】 - sleepy(webmaster) 10/07-22:37 No.2


- Web Forum -   Modified by isso