{"id":40322,"date":"2025-09-26T16:18:29","date_gmt":"2025-09-26T08:18:29","guid":{"rendered":"https:\/\/incit.org\/?page_id=40322"},"modified":"2025-12-18T10:51:14","modified_gmt":"2025-12-18T02:51:14","slug":"scan-qr","status":"publish","type":"page","link":"https:\/\/incit.org\/zh\/verify\/scan-qr\/","title":{"rendered":"\u9a8c\u8bc1 \u2013 QR"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"40322\" class=\"elementor elementor-40322\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-b0a54fd main-page e-flex e-con-boxed e-con e-parent\" data-id=\"b0a54fd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-f2fcea6 e-con-full e-flex e-con e-child\" data-id=\"f2fcea6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6c6bf25 incit-purple-gradient-1 elementor-widget elementor-widget-heading\" data-id=\"6c6bf25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">\u9a8c\u8bc1\u6587\u4ef6<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-37405b5 elementor-widget__width-inherit elementor-widget elementor-widget-text-editor\" data-id=\"37405b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u9a8c\u8bc1\u6240\u6709\u4fe1\u606f\u7684\u771f\u5b9e\u6027 <strong>INCIT\u8ba4\u8bc1\u8bc4\u4f30\u5e08<\/strong> \u548c <strong>\u5b98\u65b9\u8bc4\u4f30<\/strong><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1905246 main-page e-flex e-con-boxed e-con e-parent\" data-id=\"1905246\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-bc646c4 e-con-full e-flex e-con e-child\" data-id=\"bc646c4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b360add e-con-full e-flex e-con e-child\" data-id=\"b360add\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-019b4c7 e-con-full scan-another-button hidden e-flex e-con e-child\" data-id=\"019b4c7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cabb88d elementor-widget elementor-widget-text-editor\" data-id=\"cabb88d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u626b\u63cf\u53e6\u4e00\u4e2a\u4e8c\u7ef4\u7801<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1ce42a9 e-con-full scan-container e-flex e-con e-child\" data-id=\"1ce42a9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a98014f elementor-widget elementor-widget-heading\" data-id=\"a98014f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u626b\u63cf\u4e8c\u7ef4\u7801\u8fdb\u884c\u9a8c\u8bc1<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-aa187db elementor-widget elementor-widget-text-editor\" data-id=\"aa187db\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u5c06\u4e8c\u7ef4\u7801\u653e\u5728\u76f8\u673a\u6216\u626b\u63cf\u4eea\u524d\u9762\u5373\u53ef\u5f00\u59cb\u6b64\u8fc7\u7a0b\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-509d3ba e-con-full e-flex e-con e-child\" data-id=\"509d3ba\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c3ff64f elementor-widget elementor-widget-text-editor\" data-id=\"c3ff64f\" data-element_type=\"widget\" data-e-type=\"widget\" id=\"camera-status\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u5f53\u524d\u626b\u63cf\u6a21\u5f0f\uff1a <span style=\"color: #2b6ab1; font-weight: 500;\">\u96c6\u6210\u6444\u50cf\u5934<\/span><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-60cd0e0 ready-to-scan elementor-widget elementor-widget-image\" data-id=\"60cd0e0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"193\" height=\"192\" src=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/17162803\/ready-to-scan.svg\" class=\"attachment-large size-large wp-image-40514\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7311e9f elementor-hidden-mobile elementor-widget elementor-widget-text-editor\" data-id=\"7311e9f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u8bf7\u4f7f\u7528\u624b\u673a<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-ec4eddc elementor-hidden-desktop elementor-hidden-tablet elementor-widget elementor-widget-html\" data-id=\"ec4eddc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n    \n    .camera-button {\n        border-radius: 99px;\n        background: linear-gradient(90deg, #5B6FC3 0%, #8D6EB2 89.92%);\n        color: white;\n        border: none;\n        font-family: \"Open Sans\", Sans-Serif;\n        padding: 12px 24px;\n        line-height: 1;\n        transition: 0.3s opacity ease;\n        &:disabled {\n            opacity: 0.5;\n        }\n    }\n    .camera-controller {\n        display: flex;\n        flex-direction: column;\n        justify-content: center;\n        align-items: center;\n    }\n    .select-camera {\n        display: flex;\n        column-gap: 16px;\n        & .select-camera-select-wrapper {\n            overflow: hidden;\n            display: flex;\n            justify-content: space-between;\n            align-items: center;\n            border: 1px solid #e9e9e9;\n            border-radius: 99px;\n            position: relative;\n            &:not(:has(select option[value=\"\"]:checked)) svg {\n              opacity: 0; \/* hide *\/\n              pointer-events: none;\n            }\n            & select {\n                padding: 12px 24px;\n                -webkit-appearance: none;\n                appearance: none;\n                \/*padding: 0;*\/\n                border: none;\n                outline: none !important;\n            }\n            & svg {\n                transition: opacity 0.2s ease;\n                position: absolute;\n                transform: translate(-50%,-50%);\n                right: 14px;\n                top: 50%;\n            }\n        }\n    }\n    .hidden {\n        display: none;\n    }\n    .video-stream {\n        width: 193px;\n    }\n<\/style>\n\n<div class=\"video-stream\" id=\"reader\"><\/div>\n<div class=\"camera-controller\">\n    <button id=\"open-camera\" class=\"camera-button\">\u6253\u5f00\u76f8\u673a<\/button>\n    <div class=\"select-camera hidden\">\n        <div class=\"select-camera-select-wrapper\">\n            <select>\n                <option value=\"\">\u9009\u62e9\u76f8\u673a<\/option>\n            <\/select>\n            <svg width=\"10\" height=\"5\" viewbox=\"0 0 10 5\" fill=\"none\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n                <path d=\"M5.00314 4.98828C4.83783 4.98828 4.68852 4.92352 4.55521 4.79401L0.923831 1.11088C0.81185 0.992154 0.755859 0.851845 0.755859 0.689949C0.755859 0.51726 0.813183 0.372903 0.92783 0.256878C1.04248 0.140852 1.18245 0.08284 1.34776 0.08284C1.51306 0.08284 1.65704 0.142202 1.77969 0.260925L5.00314 3.53931L8.22659 0.260925C8.34923 0.142202 8.49054 0.08284 8.65052 0.08284C8.82115 0.08284 8.9638 0.140852 9.07844 0.256878C9.19309 0.372903 9.25041 0.51726 9.25041 0.689949C9.25041 0.851845 9.19176 0.992154 9.07444 1.11088L5.45106 4.79401C5.32841 4.92352 5.17911 4.98828 5.00314 4.98828Z\" fill=\"#0071E3\"\/>\n            <\/svg>\n        <\/div>\n        <button id=\"select-camera\" class=\"camera-button\">\u6253\u5f00\u76f8\u673a<\/button>\n    <\/div>\n    <button style=\"margin-top:30px\" id=\"close-camera\" class=\"hidden camera-button\">\u5173\u95ed\u76f8\u673a<\/button>\n<\/div>\n<script src=\"https:\/\/unpkg.com\/html5-qrcode\" type=\"text\/javascript\"><\/script>\n<script>\n    document.addEventListener(\"DOMContentLoaded\", async function(){\n        const urlParams = new URLSearchParams(window.location.search);\n        const paramValue = urlParams.get('key');\n        if (!paramValue) return;\n        try {\n            const verifyLink = \"https:\/\/api.incit.org\/verify\/v1\/documents\/verify\/\";\n            const resRaw = await fetch(verifyLink + paramValue);\n            const res = await resRaw.json();\n            const { data } = res;\n            if (res.statusCode !== 200) throw new Error(\"invalid\");\n            if (![\"ACTIVE\", \"EXPIRED\"].includes(data.status)) throw new Error(\"invalid\");\n            showMessage(\"valid\");\n            \n        }catch(e) {\n            showMessage(\"invalid\");\n        }\n        function showMessage(type) {\n            const scanAnotherButton = document.querySelector(\".scan-another-button\");\n            const scanContainer = document.querySelector(\".scan-container\");\n            scanAnotherButton.classList.remove(\"hidden\");\n            scanContainer.classList.add(\"hidden\");\n            if(type === \"invalid\") {\n                const invalidContainer = document.querySelector(\".invalid-container\");\n                invalidContainer.classList.remove(\"hidden\");\n            }else {\n                const validContainer = document.querySelector(\".valid-container\");\n                validContainer.classList.remove(\"hidden\");\n            }\n        };\n    });\n    window.addEventListener(\"load\", function () {\n  const openCamera = document.querySelector(\"#open-camera\");\n  const selectCamera = document.querySelector(\".select-camera\");\n  const selectCameraSelection = selectCamera.querySelector(\"select\");\n  const selectCameraButton = document.querySelector(\"#select-camera\");\n  const closeCamera = document.querySelector(\"#close-camera\");\n  const html5QrCode = new Html5Qrcode(\"reader\");\n  const scanAnotherButton = document.querySelector(\".scan-another-button\");\n  const readyToScan = document.querySelector(\".ready-to-scan\");\n  let devicesCount = 0;\n\n  openCamera.addEventListener(\"click\", function () {\n    this.setAttribute(\"disabled\", \"\");\n    Html5Qrcode.getCameras()\n      .then((devices) => {\n        if (devices && devices.length) {\n          if (devices.length > 1) {\n            devicesCount = devices.length;\n            for (const device of devices) {\n              const option = document.createElement(\"option\");\n              option.setAttribute(\"value\", device.id);\n              option.textContent = device.label;\n              selectCameraSelection.appendChild(option);\n            }\n            selectCamera.classList.remove(\"hidden\");\n            openCamera.classList.add(\"hidden\");\n          } else {\n              openCamera.classList.add(\"hidden\");\n            const cameraId = devices[0].id;\n            cameraStart(cameraId);\n          }\n        }else {\n          showMessage(\"invalid\", \"There are no camera detected\");\n        }\n      })\n      .catch((err) => {\n        showMessage(\"invalid\", \"Failed starting camera\");\n      })\n      .finally(() => {\n        this.removeAttribute(\"disabled\");\n      });\n  });\n  selectCameraButton.addEventListener(\"click\", function () {\n    const value = selectCameraSelection.value;\n    if (!value) return alert(\"Please select a camera\");\n\n    this.setAttribute(\"disabled\", \"\");\n    cameraStart(value);\n  });\n  closeCamera.addEventListener(\"click\", function () {\n    html5QrCode\n      .stop()\n      .then((ignore) => {\n        \/\/ QR Code scanning is stopped.\n        showScanContainer();\n      })\n      .catch((err) => {\n        \/\/ Stop failed, handle it.\n      });\n  });\n  scanAnotherButton.addEventListener(\"click\", showScanContainer);\n\n  function cameraStart(cameraId) {\n    html5QrCode\n      .start(\n        cameraId,\n        {\n          fps: 10,\n        },\n        async (decodedText, decodedResult) => {\n          try {\n            html5QrCode.stop();\n            if (!validateScanQRUrl(decodedText)) throw new Error(\"invalid\");\n            const qrUrl = new URL(decodedText);\n            const verifyLink =\n              \"https:\/\/api.incit.org\/verify\/v1\/documents\/verify\/\";\n            const resRaw = await fetch(\n              verifyLink + qrUrl.searchParams.get(\"key\")\n            );\n            const res = await resRaw.json();\n            const { data } = res;\n            if (res.statusCode !== 200) throw new Error(\"invalid\");\n            if (![\"ACTIVE\", \"EXPIRED\"].includes(data.status))\n              throw new Error(\"invalid\");\n            showMessage(\"valid\");\n          } catch (e) {\n            showMessage(\"invalid\");\n          }\n        },\n        (errorMessage) => {\n          \/\/ parse error, ignore it.\n        }\n      )\n      .then(() => {\n        selectCamera.classList.add(\"hidden\");\n        readyToScan.classList.add(\"hidden\");\n        closeCamera.classList.remove(\"hidden\");\n        selectCameraButton.removeAttribute(\"disabled\", \"\");\n      })\n      .catch((err) => {\n        selectCameraButton.removeAttribute(\"disabled\", \"\");\n        \/\/ Start failed, handle it.\n      });\n  }\n\n  function validateScanQRUrl(urlString) {\n    try {\n      const url = new URL(urlString);\n      if (url.hostname !== \"verify.incit.org\") return false;\n      if (url.pathname !== \"\/scan-qr\") return false;\n      const key = url.searchParams.get(\"key\");\n      if (!key || key.trim() === \"\") return false;\n      return true;\n    } catch (err) {\n      return false;\n    }\n  }\n  \n\n  function showMessage(type, message) {\n    const scanContainer = document.querySelector(\".scan-container\");\n    scanAnotherButton.classList.remove(\"hidden\");\n    scanContainer.classList.add(\"hidden\");\n    if (type === \"invalid\") {\n      const invalidContainer = document.querySelector(\".invalid-container\");\n      const notValidMessage = document.querySelector(\".not-valid-message p\");\n      notValidMessage.textContent = message;\n      invalidContainer.classList.remove(\"hidden\");\n    } else {\n      const validContainer = document.querySelector(\".valid-container\");\n      validContainer.classList.remove(\"hidden\");\n    }\n  }\n  function showScanContainer() {\n    const invalidContainer = document.querySelector(\".invalid-container\");\n    const validContainer = document.querySelector(\".valid-container\");\n    if (invalidContainer) invalidContainer.classList.add(\"hidden\");\n    if (validContainer) validContainer.classList.add(\"hidden\");\n    const scanContainer = document.querySelector(\".scan-container\");\n    scanContainer.classList.remove(\"hidden\");\n    scanAnotherButton.classList.add(\"hidden\");\n    openCamera.classList.remove(\"hidden\");\n    closeCamera.classList.add(\"hidden\");\n    readyToScan.classList.remove(\"hidden\");\n    for (let i = 0; i < devicesCount; i++) {\n      selectCameraSelection.querySelector(\"option:last-child\").remove();\n    }\n  }\n});\n\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-dd96a52 elementor-align-center elementor-widget elementor-widget-button\" data-id=\"dd96a52\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/incit.org\/zh\/verify\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u540e\u9000<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-b093db0 elementor-widget elementor-widget-text-editor\" data-id=\"b093db0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u6211\u4eec\u5efa\u8bae\u60a8\u4f7f\u7528\u624b\u673a\u76f8\u673a\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-08e406c e-con-full e-flex e-con e-child\" data-id=\"08e406c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-d7b029c e-con-full invalid-container hidden e-flex e-con e-child\" data-id=\"d7b029c\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-dd6ddf0 e-con-full e-flex e-con e-child\" data-id=\"dd6ddf0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ebc3189 elementor-widget elementor-widget-image\" data-id=\"ebc3189\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"102\" height=\"89\" src=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/02115234\/Not-Found-illustration.png\" class=\"attachment-large size-large wp-image-40441\" alt=\"\" srcset=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/02115234\/Not-Found-illustration.png 102w, https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/02115234\/Not-Found-illustration-14x12.png 14w\" sizes=\"(max-width: 102px) 100vw, 102px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-68a72d1 elementor-widget elementor-widget-text-editor\" data-id=\"68a72d1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u65e0\u6548<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-de1a839 e-con-full e-flex e-con e-child\" data-id=\"de1a839\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36437e2 elementor-widget elementor-widget-image\" data-id=\"36437e2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"16\" height=\"16\" src=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/17162803\/x-icon.svg\" class=\"attachment-large size-large wp-image-40442\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-fa94530 not-valid-message elementor-widget elementor-widget-text-editor\" data-id=\"fa94530\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u672a\u627e\u5230<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5780d7e e-con-full hidden valid-container e-flex e-con e-child\" data-id=\"5780d7e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-6adbbb5 e-con-full e-flex e-con e-child\" data-id=\"6adbbb5\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-533e60d elementor-widget elementor-widget-image\" data-id=\"533e60d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"75\" height=\"74\" src=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/17162803\/valid-icon.svg\" class=\"attachment-large size-large wp-image-40449\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-669e16b elementor-widget elementor-widget-text-editor\" data-id=\"669e16b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u6709\u6548\u7684<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-559ae3a error-page hidden e-flex e-con-boxed e-con e-parent\" data-id=\"559ae3a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2c561b4 e-con-full e-flex e-con e-child\" data-id=\"2c561b4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e2f63ac elementor-widget elementor-widget-heading\" data-id=\"e2f63ac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u4e0d\u652f\u6301 Safari<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-d77f977 elementor-widget elementor-widget-text-editor\" data-id=\"d77f977\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u8bf7\u5207\u6362\u5230\u5176\u4ed6\u6d4f\u89c8\u5668\uff0c\u56e0\u4e3a Safari \u4e0d\u652f\u6301\u6b64\u7f51\u7ad9\u3002<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-e1e1243 elementor-widget elementor-widget-button\" data-id=\"e1e1243\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/incit.org\/zh\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">\u8fd4\u56de\u9996\u9875<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9c0ec6c elementor-widget elementor-widget-image\" data-id=\"9c0ec6c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"486\" height=\"404\" src=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/09152315\/Group-1707481288.png\" class=\"attachment-large size-large wp-image-40817\" alt=\"\" srcset=\"https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/09152315\/Group-1707481288.png 486w, https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/09152315\/Group-1707481288-300x249.png 300w, https:\/\/assets.incit.org\/wp-content\/uploads\/2025\/10\/09152315\/Group-1707481288-14x12.png 14w\" sizes=\"(max-width: 486px) 100vw, 486px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-01703c3 e-con-full e-flex e-con e-child\" data-id=\"01703c3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;,&quot;position&quot;:&quot;absolute&quot;}\">\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-166f336 e-flex e-con-boxed e-con e-parent\" data-id=\"166f336\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1910fbc elementor-widget elementor-widget-html\" data-id=\"1910fbc\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\n    function isSafari() {\n      const ua = navigator.userAgent;\n      const isSafari = \/^((?!chrome|android|crios|fxios).)*safari\/i.test(ua);\n      return isSafari;\n    }\n    if (isSafari()) {\n        const errorPage = document.querySelector(\".error-page\");\n        const mainPage = document.querySelectorAll(\".main-page\");\n        \n        errorPage.classList.remove(\"hidden\");\n        for (const mp of mainPage) {\n            mp.classList.add(\"hidden\");\n        }\n    }\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>\u9a8c\u8bc1\u6587\u4ef6 \u9a8c\u8bc1\u6240\u6709 INCIT \u8ba4\u8bc1\u8bc4\u4f30\u5e08\u548c\u5b98\u65b9\u8bc4\u4f30\u7684\u771f\u5b9e\u6027 \u626b\u63cf\u53e6\u4e00\u4e2a\u4e8c\u7ef4\u7801 \u626b\u63cf\u4e8c\u7ef4\u7801\u8fdb\u884c\u9a8c\u8bc1 \u5c06\u4e8c\u7ef4\u7801\u653e\u5728\u76f8\u673a\u6216\u626b\u63cf\u4eea\u524d\u5373\u53ef\u5f00\u59cb\u626b\u63cf\u3002\u5f53\u524d\u626b\u63cf\u6a21\u5f0f\uff1a\u96c6\u6210\u6444\u50cf\u5934 \u8bf7\u4f7f\u7528\u624b\u673a \u6253\u5f00\u6444\u50cf\u5934 \u9009\u62e9\u6444\u50cf\u5934 \u6253\u5f00\u6444\u50cf\u5934 \u5173\u95ed\u6444\u50cf\u5934 \u8fd4\u56de [\u2026]<\/p>","protected":false},"author":1,"featured_media":40967,"parent":40304,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-40322","page","type-page","status-publish","has-post-thumbnail","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/pages\/40322","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/comments?post=40322"}],"version-history":[{"count":332,"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/pages\/40322\/revisions"}],"predecessor-version":[{"id":41914,"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/pages\/40322\/revisions\/41914"}],"up":[{"embeddable":true,"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/pages\/40304"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/media\/40967"}],"wp:attachment":[{"href":"https:\/\/incit.org\/zh\/wp-json\/wp\/v2\/media?parent=40322"}],"curies":[{"name":"\u53ef\u6e7f\u6027\u7c89\u5242","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}