2013-05-09 61 views
-1

由於某些原因,它無法連接到Javascript。我試圖自動將單詞解碼爲可翻譯的內容。如果你問我在哪裏得到了巨大的編碼應用程序,我從一個網站上獲得它,並將其用於教育目的。如何將Javascript連接到提交按鈕以編碼文本

<!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 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/="; 
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)); 
}; 
+2

JavaScript是大小寫敏感的,'輸入()'不是'輸入()' – Patashu 2013-05-09 00:35:15

+1

檢查您的瀏覽器控制檯看到errrors – 2013-05-09 00:50:21

+0

問題不清楚;就我所能做到的,海報要求我們「修復我不明白的代碼,我剛從一些網站上覆制並粘貼了這些代碼」。投票結束。 – tucuxi 2013-05-09 01:24:20

回答

0

注:

1)您onclickInput()必須input()

2)您需要通過引用DOM對象來獲取輸入字段的值,然後獲取值。

3)你不需要一個表格來做你想做的事情。

4)你應該真的使用輸入字段的標籤。

5)我沒有改變你在代碼中創建函數的方式,但你知道你可以做function input() {...},它可以全局訪問,而不必明確使用window

6)確保你結束你的輸入標籤。

7)如果你沒有使用表格,那麼你應該在input字段上使用type="button"而不是submit,但它仍然可以工作。

jsfiddle demo here

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 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/="; 
     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)); 
}; 
+0

爲什麼這個網站上的人們如此擅長他們的工作? – user2103896 2013-05-09 02:08:25

+0

持久,耐心和實踐。繼續下去,如果你喜歡它,但不要只是選擇複製和粘貼別人的代碼,因爲它做你想做的。他們的解決方案可能不是最好的解決方法,但當然瞭解儘可能多的代碼以理解和學習它是很好的。我希望你閱讀我的觀點,而不是複製粘貼和測試。 – SimonDever 2013-05-09 02:10:53

+0

是否存在的於,在該網站的按鈕和選項改變視頻遊戲的Javascript和HTML來回就像任何快速的方法呢?我在談論彈出窗口和按鈕會自動更改不同的選擇。 – user2103896 2013-05-09 02:18:34