910e62b5创建于 1月15日历史提交
<!DOCTYPE html>
<!--
@WAIT-FOR:Ready
@EXECUTE-AND-WAIT-FOR:clickTab1()
@EXECUTE-AND-WAIT-FOR:clickTab2()
@EXECUTE-AND-WAIT-FOR:clickTab3()
@BLINK-ALLOW:htmlTag*
@BLINK-ALLOW:className*
-->
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Material Web Tabs</title>
    <link href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0" rel="stylesheet">
    <script type="module">
        import { injectImportMap, loadAndWaitForReady } from "./resources/utils.js";
        injectImportMap();

        const components = [
            "md-tabs",
            "md-primary-tab",
            "md-secondary-tab",
            "md-icon"
        ];

        loadAndWaitForReady(components, () => {
            const statusDiv = document.getElementById("status");

            const primaryTabs1 = document.createElement("md-tabs");
            primaryTabs1.id = "test-tabs";
            const tabInfos1 = [
                { text: "Tab 1", id: "test-tab1" },
                { text: "Tab 2", active: true, id: "test-tab2" },
                { text: "Tab 3", id: "test-tab3" },
                { text: "Disabled Tab", disabled: true }
            ];
            tabInfos1.forEach(info => {
                const tab = document.createElement("md-primary-tab");
                tab.textContent = info.text;
                if (info.id) tab.id = info.id;
                if (info.active) tab.active = true;
                if (info.disabled) tab.disabled = true;
                primaryTabs1.appendChild(tab);
            });
            statusDiv.appendChild(primaryTabs1);

            const primaryTabs2 = document.createElement("md-tabs");
            const tabInfos2 = [
                { text: "Home", icon: "home" },
                { text: "Search", icon: "search" },
                { text: "Favorites", icon: "favorite", active: true }
            ];
            tabInfos2.forEach(info => {
                const tab = document.createElement("md-primary-tab");
                const icon = document.createElement("md-icon");
                icon.slot = "icon";
                icon.textContent = info.icon;
                tab.appendChild(icon);
                tab.appendChild(document.createTextNode(info.text));
                if (info.active) tab.active = true;
                primaryTabs2.appendChild(tab);
            });
            statusDiv.appendChild(primaryTabs2);

            const secondaryTabs = document.createElement("md-tabs");
            const tabInfos3 = [
                { text: "Secondary 1" },
                { text: "Secondary 2", active: true },
                { text: "Secondary 3" }
            ];
            tabInfos3.forEach(info => {
                const tab = document.createElement("md-secondary-tab");
                tab.textContent = info.text;
                if (info.active) tab.active = true;
                secondaryTabs.appendChild(tab);
            });
            statusDiv.appendChild(secondaryTabs);

            statusDiv.setAttribute("aria-label", "Ready");
        });
    </script>
    <script>
        async function clickTab1() {
            const tab1 = document.getElementById("test-tab1");
            if (tab1) {
                tab1.click();
                await tab1.updateComplete;
                const statusDiv = document.getElementById("status");
                const statusText = document.createElement("div");
                statusText.textContent = "Tab 1 Clicked";
                statusDiv.appendChild(statusText);
                return "Tab 1 Clicked";
            }
            return "Failed to click Tab 1";
        }

        async function clickTab2() {
            const tab2 = document.getElementById("test-tab2");
            if (tab2) {
                tab2.click();
                await tab2.updateComplete;
                const statusDiv = document.getElementById("status");
                const statusText = document.createElement("div");
                statusText.textContent = "Tab 2 Clicked";
                statusDiv.appendChild(statusText);
                return "Tab 2 Clicked";
            }
            return "Failed to click Tab 2";
        }

        async function clickTab3() {
            const tab3 = document.getElementById("test-tab3");
            if (tab3) {
                tab3.click();
                await tab3.updateComplete;
                const statusDiv = document.getElementById("status");
                const statusText = document.createElement("div");
                statusText.textContent = "Tab 3 Clicked";
                statusDiv.appendChild(statusText);
                return "Tab 3 Clicked";
            }
            return "Failed to click Tab 3";
        }
    </script>
</head>
<body>
    <div id="status" aria-label="Loading">
    </div>
</body>
</html>