Thứ Tư, 4 tháng 1, 2017

Bài 1. Làm quen với javascript trong iMacros

Chào các bạn, hôm nay mình giúp các bạn làm quen với Javascript trong iMacros.

Về javascript trong iMacros nó sẽ không khác nhau với javascript ở trình duyệt nhé, mà nó còn mạnh mẽ hơn nhiều.



Về các hàm cơ bản trong imacros như if, for, while, do while  mình sẽ không bàn tới nhé. Mình chỉ bàn tới những thứ mới trong iMacros thôi.
Và mình hướng dẫn chủ yếu bằng các ví dụ, chứ nói suông thôi ai mà hiểu.


I - Biến (Variables):
1. Biến window : là biến đại diện cho tab hiện tại đang bật trong này có chứa document, bạn lưu ý nhé. Khi đổi sang 1 tab mới, biến này được làm mới hoàn toàn. Các bạn lưu ý cho mình một điều nữa, ở javascript trên trình duyệt bình thường, bạn có thể gọi document, nhưng ở trong iMacros, bạn phải gọi window.document thì iMacros mới hiểu là bạn đang gọi document của tab hiện tại nhé.
Ví dụ 1: mình sẽ ví dụ cách lấy url của tab hiện tại nhé,
alert(window.location.href);

Câu lệnh trên khi chạy sẽ hiện 1 bảng thông báo url hiện tại của tab bạn đang bật trên Firefox.

Ví dụ 2: mình sẽ lấy tiêu đề của tab thông qua imacros nhé

var title = window.document.title;
alert(title);
Khi chạy 2 câu lệnh trên, sẽ xuất hiện thông báo tiêu đề của tab đó cho bạn.

Ví dụ 3: mình sẽ lấy 1 nội dung của bài viết này: http://imacros-nangcao.blogspot.com/2017/01/loi-mo-au.html. ở bài viết này, nội dung nằm trong class:entry-content

đầu tiên bạn phải load bài viết đó trước trên trình duyệt nhé

var _content = window.document.querySelector(".entry-content").innerHTML;alert(_content);

Nó sẽ hiện 1 đống code HTML nhé. đây chính là nội dung bài viết theo dưới dạng mã html nhé.
Mình sẽ phân tích nhé, hàm querySelector nó khá là giống trong jQuery nó sẽ trả về element đầu tiên tìm được trong chuỗi query đó nhé. thuộc tính innerHTML sẽ trả về mã html chứa trong element đó.

2. Biến imns: có thể gọi đây là biến hệ thống trong imacros. Khi sử dụng biến này bạn có thể moi móc mọi thứ trong trình duyệt nhé. Biến này mình sẽ đề cập riêng trong 1 bài viết sắp tới.
dưới đây mình sẽ nêu 1 ví dụ về tác động của nó nhé. dưới đây là ví dụ fake trình duyệt sang chrome:

var prefs = imns.Cc["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefBranch);prefs.setCharPref("general.useragent.override","Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36");

Sau khi chạy code xong, bạn vào địa chỉ này trên Firefox nhé https://www.whatismybrowser.com/ . Bùm trình duyệt của bạn đã biến thành Chrome 55 trên Windows 10 rồi. bất ngờ đúng không nào.
Đấy là 1 ví dụ cơ bản để cho thấy sự tác động mạnh mẽ của biến imns trong iMacros rồi đúng không.

II - Các hàm trong iMacros
Bạn có thể xem danh sách các hàm trong js để hỗ trợ chạy code iim trong này nhé. http://wiki.imacros.net/Command_Reference#User-defined_Variables
Mình sẽ đề cập vài hàm cơ bản hay dùng trong javascript của iMacros

1. iimPlay() (old iimPlay): Hàm này có tác dụng chạy code hay chạy file iim trong đó.
Hàm này là hàm Synchronous (xử lý đồng bộ) nhé, tức là các hàm sau đó sẽ chờ cho đến khi hàm này chạy xong nhé.
ví dụ:
iimPlayCode("url goto=http://imacros-nangcao.blogspot.com/");
khi chạy dòng này nghĩa là bạn sẽ chạy code iim  đi đến trang http://imacros-nangcao.blogspot.com/
2. iimGetExtract() : hàm này trả về biến !EXTRACT trong code iim nhé.
Ví dụ:
iimPlayCode("url goto=https://www.whatismybrowser.com/\ntag pos=1 type=div attr=class:string-major extract=txt");
var extract =  iimGetExtract();
alert(extract);
Câu lệnh trên sẽ đến trang web  https://www.whatismybrowser.com/ và lấy thông tin của trang nằm trong thẻ div có class là string-major và gán vào biến !EXTRACT, sau đó hàm iimGetExtract sẽ lấy thông tin trả về từ biến !EXTRACT
3. iimDisplay câu lệnh này dùng để xuất ra thông tin ở bên dưới sidebar của imacros
ví dụ:
var title = window.document.title;
iimDisplay("Tiêu đề của tab hiện tại là:"+title);
2 dòng lệnh trên để xuất ra thông tin tiêu đề của tab hiện tại.

Ok done, bài học hôm nay tới đây là kết thúc. Mong rằng bài này sẽ giúp bạn làm quen với việc sử dụng javascript trong iMacros.
Mọi người có góp ý hay câu hỏi vui lòng comment dưới bài viết nhé

6 nhận xét:

  1. A ƠI, CHO E HỎI, MÌNH MUỐN CHỌN 1 CÁI TRONG TRANG MÀ CHỈ BIẾT CLASS THÌ GỌI NHƯ THẾ NÀO Ạ

    Trả lờiXóa
    Trả lời
    1. Class thì có thể có nhiều element, bạn có thể dùng querySelectorAll, hàm này sẽ trả về 1 mảng và lựa chọn element mà bạn thấy chuẩn nhất nhé

      Xóa
  2. Chào bạn.
    Để tin đăng của mình luôn ở top trên diễn đàn, mình xóa comment cũ và post lại comment mới. imacros có làm được vây ko các bạn?

    Trả lờiXóa