-1

何らかの理由で、Javascript に接続できません。単語を解読可能なものに自動的にデコードしようとしています。巨大なエンコード アプリケーションをどこで入手したかという質問がある場合は、Web サイトから入手しました。これは教育目的で使用されています。

<!DOCTYPE html>
<html>
<head>
<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
<form name="input" value='Nothing Important' id="ID">
Convert Into Code: <input type="text" name="user" id="XD">
<input type="submit" value="Code" onclick="Input()">
</form>
</body>
</html>

Javascript:

window.input = function() {
function base64_encode (data) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var o1, o2, o3, h1, h2, h3, h4, bits, i = 0,
ac = 0,
enc = "",
tmp_arr = [];

if (!data) {
return data;
}

do { 
o1 = data.charCodeAt(i++);
o2 = data.charCodeAt(i++);
o3 = data.charCodeAt(i++);

bits = o1 << 16 | o2 << 12 | o3;

h1 = bits >> 18 & 0x3f;
h2 = bits >> 12 & 0x3f;
h3 = bits >> 6 & 0x3f;
h4 = bits >> 2 & 0x3f;
tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4);
} while (i < data.length);

enc = tmp_arr.join('');

var r = data.length % 3;

return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 4);

}
alert(base64_encode (XD));
};
4

1 に答える 1

0

ノート:

1) あなたのonclickInput()は である必要がありますinput()

2) DOM オブジェクトを参照して値を取得することにより、入力フィールドから値を取得する必要があります。

3) ここでやりたいことをするのにフォームは必要ありません。

4) 入力フィールドにはラベルを使用する必要があります。

5) コードで関数を作成する方法を変更していませんがfunction input() {...}、それを行うだけで、明示的に使用しなくてもグローバルにアクセスできることがわかっていますwindow

6) 入力タグを必ず終了してください。

7) フォームを使用していない場合は、代わりにtype="button"on the inputfieldを使用する必要submitがありますが、どちらの方法でも機能します。

jsfiddle デモはこちら.

HTML:

<!DOCTYPE html>
<html>
    <head>
        <meta charset=utf-8 />
        <title>JS Bin</title>
    </head>
    <body>
        <label for="XD">Convert Into Code:</label>
        <input type="text" name="user" id="XD" />
        <input type="button" value="Code" onclick="input()" />
    </body>
</html>

JavaScript:

window.input = function()
{
    function base64_encode (data)
    {
        var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
        var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, enc = "", tmp_arr = [];
        if (!data)
        {
            return data;
        }

        do
        { 
            o1 = data.charCodeAt(i++);
            o2 = data.charCodeAt(i++);
            o3 = data.charCodeAt(i++);

            bits = o1 << 16 | o2 << 12 | o3;

            h1 = bits >> 18 & 0x3f;
            h2 = bits >> 12 & 0x3f;
            h3 = bits >> 6 & 0x3f;
            h4 = bits >> 2 & 0x3f;

            tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2)
                          + b64.charAt(h3) + b64.charAt(h4);
        }
        while (i < data.length);

        enc = tmp_arr.join('');

        var r = data.length % 3;

        return (r ? enc.slice(0, r - 3) : enc) + '==='.slice(r || 4);
    }

    var XD = document.getElementById('XD').value;
    alert(base64_encode(XD));
};
于 2013-05-09T02:03:19.927 に答える