2016-06-19 72 views
-5

我發現在HTML文件中的代碼,我不太明白是什麼意思。有人有想法嗎?謝謝!這段JavaScript代碼是什麼意思? 「使用String.fromCharCode」

<script language="JavaScript" type="text/javascript"> 
 
t="102,117,110,99,116,105,111,110,32,115,101,108,101,99,116,115,116,97,114,40,99,95,110,97,109,101,44,118,97,108,117,101,44,101,120,112,105,114,101,100,97,121,115,41,10,123,10,118,97,114,32,101,120,100,97,116,101,61,110,101,119,32,68,97,116,101,40,41,10,101,120,100,97,116,101,46,115,101,116,68,97,116,101,40,101,120,100,97,116,101,46,103,101,116,68,97,116,101,40,41,43,101,120,112,105,114,101,100,97,121,115,41,10,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,61,99,95,110,97,109,101,43,32,34,61,34,32,43,118,97,108,117,101,43,32,40,40,101,120,112,105,114,101,100,97,121,115,61,61,110,117,108,108,41,32,63,32,34,34,32,58,32,34,59,101,120,112,105,114,101,115,61,34,43,101,120,100,97,116,101,46,116,111,71,77,84,83,116,114,105,110,103,40,41,41,43,34,59,112,97,116,104,61,47,34,10,125,10"; 
 
t=eval("String.fromCharCode("+t+")"); 
 
document.write("<script>"+t+"<\/script>"); 
 
</script>

+2

以下是文檔:['String.fromCharCode'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode)。你究竟對此瞭解甚麼?只需將'String.fromCharCode('...');'放在控制檯括號內的上面的數字列表(不帶引號),您就會看到腳本的樣子。 – Xufox

+0

當你離開它時,這個問題沒有意義。如果你想刪除這個問題,請繼續(或者如果你不能的話)。 –

回答

1

String.fromCharCode()方法返回使用指定的Unicode值序列創建的字符串。

var result = String.fromCharCode(102,117,110,99,116,105,111,110,32,115,101,108,101,99,116,115,116,97,114,40,99,95,110,97,109,101,44,118,97,108,117,101,44,101,120,112,105,114,101,100,97,121,115,41,10,123,10,118,97,114,32,101,120,100,97,116,101,61,110,101,119,32,68,97,116,101,40,41,10,101,120,100,97,116,101,46,115,101,116,68,97,116,101,40,101,120,100,97,116,101,46,103,101,116,68,97,116,101,40,41,43,101,120,112,105,114,101,100,97,121,115,41,10,100,111,99,117,109,101,110,116,46,99,111,111,107,105,101,61,99,95,110,97,109,101,43,32,34,61,34,32,43,118,97,108,117,101,43,32,40,40,101,120,112,105,114,101,100,97,121,115,61,61,110,117,108,108,41,32,63,32,34,34,32,58,32,34,59,101,120,112,105,114,101,115,61,34,43,101,120,100,97,116,101,46,116,111,71,77,84,83,116,114,105,110,103,40,41,41,43,34,59,112,97,116,104,61,47,34,10,125,10); 
 
console.log(result); 
 

+0

是否有任何理由爲什麼這個開發者不得不使用String。fromCharCode而不是在普通字符串中使用這個函數? –

+1

@JohnB。這是代碼混淆。這有很多原因。也許隱藏從網站訪問cookie,也許會讓人們看看代碼,等等。 – Xufox

+0

嗯......它讓我困惑。 :) 感謝您的回覆! –

1

每個字符(A,B,C和它們的小寫的a,b,c)通過多個限定的(參見ASCII表)。

例如,A(大寫)是數字65。這就像是一時間哪里哪里編程語言不支持,我們不得不使用數字序列代替字符。

String.fromCharCode將作爲參數的信中的代碼,並將其轉換成字符串。 (注意它返回一個字符串而不是一個String對象)。

總是問這樣的問題之前,Mozilla開發者網絡查詢,得到的答覆是最有可能的原因:)

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode

你的代碼片段將轉化爲一個功能:

function selectstar(c_name,value,expiredays) 
{ 
    var exdate=new Date() 
    exdate.setDate(exdate.getDate()+expiredays) 
    document.cookie=c_name+ "=" +value+ ((expiredays==null) ? "" : ";expires="+exdate.toGMTString())+";path=/" 
} 
1

字符串.fromCharCode()只需將一個Unicode數字轉換爲一個字符。 更多的解釋

1

使用String.fromCharCode參見this將給定整數值轉換爲相關聯的字符。

關於例子,我不知道你的確切地尋找。您能否詳細說明您正在嘗試如何描述場景

0

這裏變量t是表示Unicode數字/ ASCII字符的即116 = 'N' 的列表。

它翻譯成:

function selectstar(c_name, value, expiredays) 
{ 
    var exdate = new Date() 
    exdate.setDate(exdate.getDate() + expiredays) 
    document.cookie = c_name + "=" + value + ((expiredays==null) 
     ? "" : ";expires=" + exdate.toGMTString()) + ";path=/" 
} 

它試圖評估該片段並將其插入到頁面中。