_JS_Execute

HTTP Requests

_JS_Execute

Top  Previous  Next

 

Chạy và trả kết quả Javascript Code

 

 _JS_Execute($LibraryJS, $sCodeJS, $Name_Var_Return_Val [, $PathTempLibJS = Default ])

 

 

 

* Tham số

$LibraryJS

URL thư viện js hoặc Đường dẫn tập tin thư viện js

$sCodeJS

Code js

$Name_Var_Return_Val

Tên của biến trong code js cần lấy giá trị của nó

$PathTempLibJS

Đường dẫn nơi lưu thư viện js nếu $LibraryJS là URL

 

 

 

* Giá trị trả về

Giá trị của biến trong code js đã được gọi với $Name_Var_Return_Val

 

 

 

* Ghi chú

·Để chuyển nhanh từ một code js sang string AutoIt ta dùng _JS_ToStringAu3.

 

·Thư viện js ta xem từ source Html, nó sẽ nằm trong tag:

<script src="thưviện.js" type="text/javascript"></script>

Nếu thưviện.js có dạng URL đầy đủ thì không nói gì, nhưng nếu nó chỉ có một phần URL thôi, như: "/js/jquery-3.1.1.min.js" thì ta gắn địa chỉ Domain vào là được. Ví dụ: Thư viện nằm trong trang https://account.garena.com/?locale_name=VN thì thư viện sẽ có URL hoàn chỉnh là: https://account.garena.com/js/jquery-3.1.1.min.js

 

·Muốn nạp nhiều thư viện vào tham số  ta sẽ nối URL / Đường dẫn của thư viện bằng dấu |, ví dụ:

$LibraryJS = 'https://garena.com/js/jsencrypt.min.js|https://garena.com/js/jquery-3.1.1.min.js'

$LibraryJS = 'https://garena.com/js/jsencrypt.min.js|C:\jquery-3.1.1.min.js'

 

·Phải linh động thay đổi code js sao cho muốn lấy giá trị nào thì gán biến nhận giá trị đó.

 

 

 

* Ví dụ

#include <_HttpRequest.au3>

$LibraryJS = 'https://sso.garena.com/js/crypto.js?v=0.60'

;----------------------------------------------------

Local $sCodeJS = ''

$sCodeJS &= 'var password = "huanhoang";'

$sCodeJS &= 'var passwordMd5 = CryptoJS.MD5(password);'

$sCodeJS &= 'var passwordKey = CryptoJS.SHA256(CryptoJS.SHA256(passwordMd5 + "abc") + "def");'

$sCodeJS &= 'var encryptedPassword = CryptoJS.AES.encrypt(passwordKey,passwordMd5, {mode: CryptoJS.mode.ECB,padding: CryptoJS.pad.NoPadding});'

$sCodeJS &= 'var encryptedPasswordB64 = CryptoJS.enc.Base64.parse(encryptedPassword.toString()).toString(CryptoJS.enc.Hex);'

;----------------------------------------------------

$Name_Var_Return_Val = 'encryptedPasswordB64' ; Lấy giá trị của biến encryptedPasswordB64 trong code js

;----------------------------------------------------

$KQ = _JS_Execute($LibraryJS, $sCodeJS, $Name_Var_Return_Val)

MsgBox(4096, 'encryptedPasswordB64', $KQ)

 

Xem thêm ví dụ khác tại đây.