> For the complete documentation index, see [llms.txt](https://minhtien192057s-organization.gitbook.io/gemlogin-book/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://minhtien192057s-organization.gitbook.io/gemlogin-book/khoi/web-interaction/javascript-code.md).

# Javascript Code

## Thời gian chờ[​](https://docs.omnilog.in/blocks/javascript-code.html#thoi-gian-cho) <a href="#thoi-gian-cho" id="thoi-gian-cho"></a>

Thời gian tối đa mà node sẽ chạy, mặc định thời gian chờ là 20 giây, nếu trong thời gian chờ đoạn mã thực hiện xong thì sẽ Quy trình sẽ thực thi với các node kế tiếp, nếu trong thời gian chờ node chưa chạy xong thì sẽ dừng Quy trình

## Bối cảnh thực thi[​](https://docs.omnilog.in/blocks/javascript-code.html#boi-canh-thuc-thi) <a href="#boi-canh-thuc-thi" id="boi-canh-thuc-thi"></a>

Bối cảnh thực thi sẽ luôn luôn là tab hoạt động

## JavaScript Code[​](https://docs.omnilog.in/blocks/javascript-code.html#javascript-code-1) <a href="#javascript-code-1" id="javascript-code-1"></a>

Có một số hàm dựng sẵn mà bạn có thể lấy ra để sử dụng trong node.

```java
gemloginNextBlock(
	data?: Object | Object[], 
	insert?: boolean | { insert?: boolean; nextBlockId?: string; replaceTable?: boolean }
): void;
```

Để yêu cầu quy trình tiếp tục thực hiện node tiếp theo.

Sử dụng tham số `data` để chèn dữ liệu vào bảng. Tham số này có thể lấy một đối tượng hoặc một mảng các kiểu dữ liệu đối tượng và khóa của đối tượng phải được xác định trong bảng.

Tham số `insert` được dùng để điều khiển nơi mà chèn dữ liệu tham số `data` vào trong bảng, mặc định là `true`. Ngoài ra, bạn có thể truyền một đối tượng chứa hai thuộc tính tùy chọn:

* `insert`: liệu có chèn dữ liệu hay không.
* `nextBlockId`: một chuỗi chỉ định ID của node tiếp theo để điều hướng tới.
* `replaceTable`: thay thế các giá trị của bảng quy trình bằng các giá trị được truyền vào tham số đầu tiên.

**Ví dụ**

```java
gemloginNextBlock({ name: 'A', age: 24 });

//hoặc

gemloginNextBlock([{ name: 'A', age: 24 }, { name: 'A1', age: 24 }])

// Tiếp tục thực hiện đến một node cụ thể
gemloginNextBlock({ name: 'A' }, { nextBlockId: '4dxcxa3' })
```

#### `gemloginSetVariable(name, value)`[​](https://docs.omnilog.in/blocks/javascript-code.html#omniloginsetvariable-name-value) <a href="#omniloginsetvariable-name-value" id="omniloginsetvariable-name-value"></a>

Gán giá trị cho các biến trong kịch bản công việc.

**Ví dụ**

```java
// Gán giá trị Nguyen Van A cho biến name
gemloginSetVariable('name', 'Nguyen Van A');

// Gán giá trị một mảng cho biến age
gemloginSetVariable('age', [18, 30, 40, 50, 60]);

// Gán giá trị object cho biến profile
gemloginSetVariable('profile', { firstName: 'Nguyen', lastName: 'A' });
```

#### `gemloginRefData(keyword, path)`[​](https://docs.omnilog.in/blocks/javascript-code.html#omniloginrefdata-keyword-path) <a href="#omniloginrefdata-keyword-path" id="omniloginrefdata-keyword-path"></a>

Sử dụng chức năng này để truy cập dữ liệu kịch bản công việc như bảng, biến, v.v.

**Ví dụ**

```java
// Lấy hàng đầu tiên của bảng
const firstRow = gemloginRefData('table', '0');

// Lấy hàng cuối cùng của bảng
const firstRow = gemloginRefData('table', '$last');

// Lấy cột "name" ở hàng đầu tiên của bảng
const firstRow = gemloginRefData('table', '0.name');

// Lấy giá trị chung của quy trình
const globalData = gemloginRefData('globalData');

// Lấy dữ liệu lặp của node dữ liệu vòng lặp
const data = gemloginRefData('loopData', 'loopId');

// Lấy giá trị của biến "text"
const value = gemloginRefData('variables', 'text');
```

#### `gemloginResetTimeout()`[​](https://docs.omnilog.in/blocks/javascript-code.html#omniloginresettimeout) <a href="#omniloginresettimeout" id="omniloginresettimeout"></a>

Đặt lại thời gian chờ của khi thực hiện.

## Thực thi mọi tab mới[​](https://docs.omnilog.in/blocks/javascript-code.html#thuc-thi-moi-tab-moi) <a href="#thuc-thi-moi-tab-moi" id="thuc-thi-moi-tab-moi"></a>

Điều này sẽ thực thi mã javascript mỗi khi Automation tạo một tab mới hoặc chuyển đổi một tab. Khi tùy chọn này được bật, node mã javascript không còn yêu cầu một tab hoạt động để hoạt động và các chức năng tích hợp sẵn như `gemloginRefData`, `gemloginNextBlock`, v.v. sẽ không có sẵn

## Tải trước [​](https://docs.omnilog.in/blocks/javascript-code.html#tai-truoc-tep-ma) <a href="#tai-truoc-tep-ma" id="tai-truoc-tep-ma"></a>

Tải một tệp code javascript trước khi thực thi node này

* **URL**\
  Đường dẫn đến file mã javascript
