WindowSharedStorage: phương thức selectURL()
Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.
Phương thức selectURL() của giao diện WindowSharedStorage thực thi một thao tác URL Selection đã được đăng ký trong module được thêm vào SharedStorageWorklet của nguồn gốc hiện tại.
Note: URL Selection output gate được sử dụng để chọn một URL từ danh sách được cung cấp để hiển thị cho người dùng, dựa trên dữ liệu bộ nhớ dùng chung.
Cú pháp
selectURL(name, urls)
selectURL(name, urls, options)
Tham số
name-
Một chuỗi đại diện cho tên của thao tác đã đăng ký trong module worklet bộ nhớ dùng chung. Phải khớp với tên được cung cấp cho thao tác khi nó được đăng ký với
SharedStorageWorkletGlobalScope.register(). urls-
Một mảng các đối tượng đại diện cho các URL cần được chọn bởi thao tác URL Selection. Mỗi đối tượng chứa hai thuộc tính:
url-
Một chuỗi đại diện cho URL.
reportingMetadataOptional-
Một đối tượng chứa các thuộc tính trong đó tên là loại sự kiện và giá trị là các URL trỏ đến điểm đến báo cáo.
optionsOptional-
Một đối tượng tùy chọn có thể chứa các thuộc tính sau:
dataOptional-
Một đối tượng đại diện cho bất kỳ dữ liệu nào cần thiết để thực thi thao tác.
keepAliveOptional-
Một giá trị boolean. Nếu đặt thành
true,SharedStorageWorkletGlobalScopecủa worklet liên quan được giữ sống. resolveToConfigOptional-
Một giá trị boolean. Nếu đặt thành
true, giá trị hoàn thành củaPromiseđược trả về bởirun()sẽ là đối tượngFencedFrameConfig. Mặc định làfalse.
Giá trị trả về
Một Promise hoàn thành với đối tượng FencedFrameConfig hoặc chuỗi đại diện cho URL, tùy thuộc vào giá trị của tùy chọn resolveToConfig.
Ngoại lệ
TypeError-
Được ném nếu:
- Module worklet chưa được thêm bằng
addModule(). urlstrống hoặc vượt quá độ dài tối đa cho phép.- Thuộc tính
urlcủa đối tượng chứa URL không hợp lệ. - Bộ nhớ dùng chung bị vô hiệu hóa.
- Trang web gọi không có Shared Storage API được đưa vào trong quá trình đăng ký privacy sandbox thành công.
- Module worklet chưa được thêm bằng
Ví dụ
>Kiểm tra A/B cơ bản
// Randomly assigns a user to a group 0 or 1
function getExperimentGroup() {
return Math.round(Math.random());
}
async function injectContent() {
// Add the module to the shared storage worklet
await window.sharedStorage.worklet.addModule("ab-testing-worklet.js");
// Assign user to a random group (0 or 1) and store it in shared storage
window.sharedStorage.set("ab-testing-group", getExperimentGroup(), {
ignoreIfPresent: true,
});
// Run the URL selection operation
const fencedFrameConfig = await window.sharedStorage.selectURL(
"ab-testing",
[
{ url: `https://your-server.example/content/default-content.html` },
{ url: `https://your-server.example/content/experiment-content-a.html` },
],
{
resolveToConfig: true,
},
);
// Render the chosen URL into a fenced frame
document.getElementById("content-slot").config = fencedFrameConfig;
}
injectContent();
Xem trang đích Shared Storage API để được hướng dẫn về ví dụ này và các liên kết đến các ví dụ khác.