Tài liệu này trình bày các quyền đối với các mẫu tuỳ chỉnh trên web.
Mỗi quyền:
- Đã được các API yêu cầu kiểm tra.
- Tự động phát hiện trong JavaScript hộp cát, dựa trên API được sử dụng. Điều này xảy ra khi chỉnh sửa được thực hiện trong trình chỉnh sửa mẫu tuỳ chỉnh (để nhanh chóng vòng lặp phản hồi) và khi mã được biên dịch (để xác thực rằng thực thi quyền).
- Có thể chỉnh sửa trong trình chỉnh sửa mẫu tuỳ chỉnh, để làm cho quyền cụ thể hơn.
- Có thể truy vấn trong JavaScript hộp cát thông qua API
queryPermission
.
access_globals
Tên hiển thị: Truy cập vào các biến toàn cục
Mô tả: Cho phép truy cập vào một biến toàn cục (có thể bao gồm các API nhạy cảm).
Cấu hình: Danh sách các khoá có thể truy cập. Mỗi phím là một dấu chấm
đường dẫn riêng biệt. Ví dụ: foo.bar
Mã thông báo đầu tiên trong mỗi đường dẫn không được là
một khoá được xác định trước trên phạm vi toàn cầu của trình duyệt hoặc từ khoá JavaScript. Đã đọc,
ghi và thực thi các hộp đánh dấu kiểm soát quyền truy cập.
Người yêu cầu: setInWindow
, copyFromWindow
, callInWindow
,
createQueue
, createArgumentsQueue
Chữ ký truy vấn: queryPermission('access_globals', 'read', <key to read
from>)
, queryPermission('access_globals', 'write', <key to write to>)
hoặc
queryPermission('access_globals', 'readwrite', <key to read and write>)
hoặc
queryPermission('access_globals', 'execute', <key of function to execute>)
Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc và/hoặc ghi vào toàn cục hay không giá trị.
Mã ví dụ
const queryPermission = require('queryPermission');
const createQueue = require('createQueue');
if (queryPermission('access_globals', 'readwrite', 'dataLayer')) {
const dataLayerPush = createQueue('dataLayer');
}
access_local_storage
Tên hiển thị: Truy cập vào bộ nhớ cục bộ
Mô tả: Cho phép truy cập vào các khoá được chỉ định trong bộ nhớ cục bộ.
Cấu hình: Danh sách các khoá bộ nhớ cục bộ có thể truy cập. Đây là một một mảng khoá đơn giản, không có ký tự đại diện. Có hộp đánh dấu đọc và ghi quản lý quyền truy cập.
Bên yêu cầu: localStorage
Chữ ký truy vấn: queryPermission('access_local_storage', 'read', <key to
read from>)
, queryPermission('access_local_storage', 'write', <key to write
to>)
hoặc queryPermission('access_local_storage', 'readwrite', <key to read and
write>)
Mã ví dụ
const queryPermission = require('queryPermission');
const localStorage = require('localStorage');
const key = 'my_key';
if (queryPermission('access_local_storage', 'read', key)) {
const value = localStorage.getItem(key);
}
access_template_storage
Tên hiển thị: Truy cập vào bộ nhớ mẫu
Mô tả: Cho phép truy cập vào bộ nhớ tạm thời đối với các mẫu có thể tồn tại trong suốt thời gian tồn tại của trang.
Cấu hình: Không có
Bên yêu cầu: templateStorage
Chữ ký truy vấn: queryPermission('access_template_storage')
Mã ví dụ
const queryPermission = require('queryPermission');
const templateStorage = require('templateStorage');
const key = 'my_key';
if (queryPermission('access_template_storage')) {
const value = templateStorage.getItem(key);
}
get_cookies
Tên hiển thị: Đọc(các) giá trị cookie
Mô tả: Đọc giá trị của cookie có tên đã chỉ định.
Cấu hình: Danh sách tên cookie được phép đọc.
Bên yêu cầu: getCookieValues
Chữ ký truy vấn: queryPermission('get_cookies', <name>)
Lưu ý: Quản lý việc có thể đọc cookie hay không, tuỳ thuộc vào tên cookie.
Mã ví dụ
const queryPermission = require('queryPermission');
const getCookieValues = require('getCookieValues');
const cookieName = 'info';
let cookieValues;
if (queryPermission('get_cookies', cookieName)) {
cookieValues = getCookieValues(cookieName);
}
get_referrer
Tên hiển thị: Đọc URL liên kết giới thiệu
Mô tả: Cho phép quyền đọc các phần thu hẹp của đường liên kết giới thiệu.
Cấu hình: Các boolean sau đây chi phối phần nào của đường liên kết giới thiệu có thể
có thể đọc được. Một phần nhất định của đường liên kết giới thiệu chỉ có thể được đọc nếu phần tương ứng đó
là true
. Phương thức gọi có thể gọi getReferrerUrl
mà không cần thành phần được chỉ định cho
nhận được URL liên kết giới thiệu đầy đủ nếu tất cả các giá trị boolean này được đặt thành true
. Nếu không có giá trị
được đặt, giá trị mặc định là all
. Nếu một giá trị được đặt, thì giá trị đó phải là
mảng các thành phần, trong đó một thành phần là một trong các mảng sau: protocol
,
host
, port
, path
, query
hoặc extension
.
queryKeys
:
Nếu truy vấn được chọn, thì tác giả mẫu có thể giới hạn thêm tập hợp
khoá truy vấn mà chúng có thể đọc từ đó. Đây là một mảng khoá đơn giản, không có
ký tự đại diện.
Được yêu cầu bởi: getReferrerUrl
, getReferrerQueryParameters
Chữ ký truy vấn: queryPermission('get_referrer', <url_component>)
Mã ví dụ
const queryPermission = require('queryPermission');
const getReferrerUrl = require('getReferrerUrl');
let referrer;
if (queryPermission('get_referrer', 'query')) {
referrer = getReferrerUrl('queryParams');
}
get_url
Tên hiển thị: Đọc URL
Nội dung mô tả: Trả về một phần hoặc toàn bộ URL của trang hiện tại.
Cấu hình: Các giá trị boolean sau đây quy định phần nào của URL có thể được liên kết
đã đọc. Hệ thống chỉ có thể đọc một phần nhất định của URL nếu phần tương ứng đó là
đúng. Phương thức gọi có thể gọi getUrl
mà không cần thành phần được chỉ định để lấy giá trị
toàn bộ URL khi và chỉ khi tất cả các giá trị boolean này được đặt thành true
. Nếu không có giá trị nào là
đã đặt, giá trị mặc định là all
. Nếu bạn đặt một giá trị thì giá trị đó phải là một mảng
của các thành phần trong đó một thành phần là một trong các thành phần sau: protocol
, host
,
port
, path
, query
, extension
hoặc fragment
.
queryKeys
:
Nếu truy vấn được chọn, thì tác giả mẫu có thể giới hạn thêm tập hợp
khoá truy vấn mà chúng có thể đọc từ đó. Đây là một mảng khoá đơn giản, không có
ký tự đại diện.
Bên yêu cầu: getUrl
Chữ ký truy vấn: queryPermission('get_url', <optional url component>,
<optional query key>)
Nếu được cung cấp, thành phần Url phải là một trong các giá trị 'protocol'
, 'host'
, 'port'
,
'path'
, 'query'
, 'extension'
, 'fragment'
. Nếu bị bỏ qua, quyền
truy vấn là một yêu cầu truy cập vào toàn bộ URL.
Nếu được cung cấp, khoá truy vấn phải là đối số chuỗi truy vấn mà mẫu mã muốn đọc.
Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc từ vị trí. Cho phép giới hạn một phần cụ thể của vị trí.
Mã ví dụ
const queryPermission = require('queryPermission');
const getUrl = require('getUrl');
if (queryPermission('get_url', 'query', 'gclid')) {
const gclid = getUrl('query', false, null, 'gclid');
}
inject_hidden_iframe
Tên hiển thị: Chèn các iframe ẩn
Mô tả: Chèn một iframe ẩn bằng một URL nhất định.
Cấu hình: Danh sách các mẫu URL
Bên yêu cầu: injectHiddenIframe
Chữ ký truy vấn: queryPermission('inject_hidden_iframe', <url>)
Lưu ý: Quản lý việc một mẫu tùy chỉnh có thể chèn một iFrame vô hình hay không và nguồn gốc nào có thể thực hiện việc này.
Mã ví dụ
const queryPermission = require('queryPermission');
const injectHiddenIframe = require('injectHiddenIframe');
const url = 'https://www.example.com/iframes';
if (queryPermission('inject_hidden_iframe', url)) {
injectHiddenIframe(url);
}
inject_script
Tên hiển thị: Chèn tập lệnh
Mô tả: Chèn một tập lệnh vào trang.
Cấu hình: Danh sách các mẫu URL
Bên yêu cầu: injectScript
Chữ ký truy vấn: queryPermission('inject_script', <url>)
Lưu ý: Quản lý xem một mẫu tùy chỉnh có thể chèn JavaScript hay không và nguồn gốc nào có thể làm việc đó.
Mã ví dụ
const queryPermission = require('queryPermission');
const injectScript = require('injectScript');
const url = 'https://www.example.com?api.js';
if (queryPermission('inject_script', url)) {
injectScript(url);
}
ghi nhật ký
Tên hiển thị: Nhật ký vào bảng điều khiển
Mô tả: Ghi nhật ký vào Developer Console và chế độ xem trước của GTM.
Cấu hình: Tuỳ chọn để bật tính năng ghi nhật ký trong phiên bản phát hành công khai. Giá trị mặc định là chỉ
bật tính năng ghi nhật ký trong gỡ lỗi/xem trước. Nếu quyền bị từ chối, logToConsole
sẽ
không gửi lỗi mà sẽ chặn thông điệp nhật ký.
Bên yêu cầu: logToConsole
Chữ ký truy vấn: queryPermission('logging')
Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đăng nhập vào bảng điều khiển dành cho nhà phát triển hay không.
Mã ví dụ
const queryPermission = require('queryPermission');
const logToConsole = require('logToConsole');
// Note that it's fine to call log, since the log call will be ignored if
// logging isn't permitted in the current environment.
logToConsole('diagnostic info');
read_data_layer
Tên hiển thị: Đọc lớp dữ liệu
Nội dung mô tả: Đọc dữ liệu từ dataLayer.
Cấu hình: Tập hợp các biểu thức so khớp khoá, trong đó kết quả so khớp khoá có thể là một chuỗi tham chiếu dấu chấm ở đầu, kèm theo ký tự đại diện. So khớp phím biểu thức chi phối thuộc tính nào có thể được đọc từ lớp dữ liệu.
Bên yêu cầu: copyFromDataLayer
Chữ ký truy vấn: queryPermission('read_data_layer', <data layer key to read
from>)
Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc từ lớp dữ liệu hay không.
Mã ví dụ
const queryPermission = require('queryPermission');
const copyFromDataLayer = require('copyFromDataLayer');
const dlKey = 'foo.bar';
if (queryPermission('read_data_layer', dlKey)) {
const dlContents = copyFromDataLayer(dlKey);
}
read_character_set
Tên hiển thị: Đọc bộ ký tự tài liệu
Description: Đọc document.characterSet
.
Cấu hình: Không có
Bên yêu cầu: readCharacterSet
Chữ ký truy vấn: queryPermission('read_character_set')
Lưu ý: Quản lý việc một mẫu tuỳ chỉnh có thể đọc document.characterSet
hay không.
Mã ví dụ
const queryPermission = require('queryPermission');
const readCharacterSet = require('readCharacterSet');
if (queryPermission('read_character_set')) {
const characterSet = readCharacterSet();
}
read_container_data
Tên hiển thị: Đọc dữ liệu vùng chứa
Nội dung mô tả: Đọc dữ liệu về vùng chứa.
Cấu hình: Không có
Bên yêu cầu: getContainerVersion
Chữ ký truy vấn: queryPermission('read_container_data')
Lưu ý: Kiểm soát việc mẫu tuỳ chỉnh có thể đọc dữ liệu về vùng chứa hay không.
Mã ví dụ
const queryPermission = require('queryPermission');
const getCookieValues = require('getContainerVersion');
let version;
if (queryPermission('read_container_data')) {
version = getContainerVersion();
}
read_event_metadata
Tên hiển thị: Đọc siêu dữ liệu sự kiện
Nội dung mô tả: Đọc siêu dữ liệu sự kiện trong các lệnh gọi lại sự kiện
Cấu hình: Không có
Bên yêu cầu: addEventCallback
Chữ ký truy vấn: queryPermission('read_event_metadata')
Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể đọc siêu dữ liệu sự kiện trong lệnh gọi lại.
Mã ví dụ
const queryPermission = require('queryPermission');
const addEventCallback = require('addEventCallback');
if (queryPermission('read_event_metadata')) {
addEventCallback((containerId, eventMetadata) => {
// Read event metadata.
});
}
read_title
Tên hiển thị: Đọc tiêu đề tài liệu
Description: Đọc document.title
.
Cấu hình: Không có
Bên yêu cầu: readTitle
Chữ ký truy vấn: queryPermission('read_title')
Lưu ý: Quản lý việc mẫu tuỳ chỉnh có thể đọc document.title
hay không.
Mã ví dụ
const queryPermission = require('queryPermission');
const readTitle = require('readTitle');
if (queryPermission('read_title')) {
const title = readTitle();
}
send_pixel
Tên hiển thị: Gửi pixel
Nội dung mô tả: Gửi yêu cầu GET đến một URL đã chỉ định. Phản hồi không phải là đã xử lý.
Cấu hình: Danh sách các mẫu URL được phép.
Bên yêu cầu: sendPixel
Chữ ký truy vấn: queryPermission('send_pixel', <url>)
Lưu ý: Quản lý việc mẫu tùy chỉnh có thể gửi yêu cầu GET hay không và nguồn gốc nào có thể làm như vậy.
Mã ví dụ
const queryPermission = require('queryPermission');
const sendPixel = require('sendPixel');
const url = 'https://www.example.com?foo=3';
if (queryPermission('send_pixel', url)) {
sendPixel(url);
}
set_cookies
Tên hiển thị: Đặt một cookie
Mô tả: Đặt cookie có tên và thông số đã chỉ định.
Cấu hình: Một bảng gồm các tên cookie được phép, mỗi tên có các lựa chọn không bắt buộc
các quy định hạn chế về tên, miền, đường dẫn, thuộc tính secure
và thời hạn.
Bên yêu cầu: setCookie
Chữ ký truy vấn: queryPermission('set_cookies', <name>, <options>)
Lưu ý: Quản lý việc có thể ghi cookie hay không, tùy thuộc vào cookie
tên, miền, đường dẫn, thuộc tính secure
và thời hạn.
Mã ví dụ
const queryPermission = require('queryPermission');
const setCookie = require('setCookie');
const options = {
'domain': 'www.example.com',
'path': '/',
'max-age': 60*60*24*365,
'secure': true
};
if (queryPermission('set_cookies', 'info', options)) {
setCookie('info', 'xyz', options);
}
write_data_layer
Tên hiển thị: Ghi lớp dữ liệu
Nội dung mô tả: Ghi dữ liệu vào dataLayer.
Cấu hình: Tập hợp các biểu thức so khớp khoá, trong đó kết quả so khớp khoá có thể là một chuỗi tham chiếu dấu chấm ở đầu, kèm theo ký tự đại diện. Biểu thức so khớp khoá điều chỉnh những thuộc tính nào có thể ghi vào lớp dữ liệu.
Bên yêu cầu: gtagSet
Chữ ký truy vấn: queryPermission('write_data_layer', <data layer key to
write from>)
Lưu ý: Kiểm soát việc một mẫu tuỳ chỉnh có thể ghi vào lớp dữ liệu hay không.
Mã ví dụ
const queryPermission = require('queryPermission');
const gtagSet = require('gtagSet');
const dlKey = 'foo.bar';
if (queryPermission('write_data_layer', dlKey)) {
gtagSet({dlKey: 'baz'});
}