{"id":646,"date":"2026-05-16T21:36:56","date_gmt":"2026-05-16T13:36:56","guid":{"rendered":"https:\/\/www.jhcis.idv.tw\/jan\/?p=646"},"modified":"2026-05-19T12:49:32","modified_gmt":"2026-05-19T04:49:32","slug":"%e5%b0%8f%e7%83%8f%e4%be%86%e3%83%bb%e8%a7%92%e6%9d%bf%e5%b1%b1%e3%83%bb%e7%9f%b3%e9%96%80%e6%b0%b4%e5%ba%ab-%e6%b7%b1%e5%ba%a6%e5%b7%a1%e7%a6%ae","status":"publish","type":"post","link":"https:\/\/www.jhcis.idv.tw\/jan\/?p=646","title":{"rendered":"\u5c0f\u70cf\u4f86\u30fb\u89d2\u677f\u5c71\u30fb\u77f3\u9580\u6c34\u5eab \u6df1\u5ea6\u5de1\u79ae"},"content":{"rendered":"\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"https:\/\/www.jhcis.idv.tw\/video\/\u5f71\u7247\/\u5f71\u97f3\u5eab\/2026\/20260516.\u5c0f\u70cf\u4f86\/20260516.\u5c0f\u70cf\u4f86.mp4\" playsinline><\/video><\/figure>\n\n\n\n<!-- \u9032\u5ea6\u689d\u6309\u9215 -->\n<button id=\"downloadBtn\" style=\"display: inline-block; padding: 10px 20px; background-color: #007bff; color: white; border: none; border-radius: 5px; font-weight: bold; cursor: pointer; min-width: 150px; text-align: center;\">\n  \u4e0b\u8f09\u5f71\u7247\n<\/button>\n\n<script>\ndocument.getElementById('downloadBtn').addEventListener('click', async function() {\n    const videoUrl = 'https:\/\/www.jhcis.idv.tw\/video\/\u5f71\u7247\/\u5f71\u97f3\u5eab\/2026\/20260516.\u5c0f\u70cf\u4f86\/20260516.\u5c0f\u70cf\u4f86.mp4'; \/\/ \ud83d\udc48 \u8acb\u5728\u9019\u88e1\u8f38\u5165\u60a8\u7684 MP4 \u5f71\u7247\u7db2\u5740\n    const button = this;\n    \n    \/\/ 1. \u521d\u59cb\u5316\u6309\u9215\u72c0\u614b\n    button.disabled = true;\n    button.style.backgroundColor = '#6c757d';\n    button.innerText = '\u9023\u7dda\u4e2d...';\n\n    try {\n        const response = await fetch(videoUrl);\n        if (!response.ok) throw new Error('\u6a94\u6848\u4e0b\u8f09\u5931\u6557');\n\n        \/\/ 2. \u7372\u53d6\u4f3a\u670d\u5668\u56de\u50b3\u7684\u6a94\u6848\u7e3d\u5927\u5c0f\n        const contentLength = response.headers.get('content-length');\n        \n        \/\/ \u5982\u679c\u4f3a\u670d\u5668\u6c92\u6709\u56de\u50b3\u6a94\u6848\u5927\u5c0f\uff0c\u986f\u793a\u9810\u8a2d\u4e0b\u8f09\u6587\u5b57\n        if (!contentLength) {\n            button.innerText = '\u4e0b\u8f09\u4e2d\uff0c\u8acb\u7a0d\u5019...';\n        }\n\n        const total = parseInt(contentLength, 10);\n        let loaded = 0;\n\n        const reader = response.body.getReader();\n        const chunks = [];\n\n        \/\/ 3. \u5faa\u74b0\u8b80\u53d6\u8cc7\u6599\u7247\u6bb5\u4e26\u66f4\u65b0\u767e\u5206\u6bd4\n        while(true) {\n            const {done, value} = await reader.read();\n            if (done) break;\n            \n            chunks.push(value);\n            loaded += value.length;\n\n            \/\/ \u5373\u6642\u8a08\u7b97\u4e26\u66f4\u65b0\u6309\u9215\u6587\u5b57\n            if (contentLength) {\n                const percent = Math.round((loaded \/ total) * 100);\n                button.innerText = `\u4e0b\u8f09\u4e2d... ${percent}%`;\n            }\n        }\n\n        \/\/ 4. \u8cc7\u6599\u4e0b\u8f09\u5b8c\u6210\uff0c\u6253\u5305\u6210 Blob \u6a94\u6848\n        const blob = new Blob(chunks);\n        const blobUrl = URL.createObjectURL(blob);\n\n        \/\/ 5. \u89f8\u767c\u700f\u89bd\u5668\u4e0b\u8f09\u884c\u70ba\n        const a = document.createElement('a');\n        a.href = blobUrl;\n        a.download = 'video.mp4'; \/\/ \ud83d\udc48 \u9019\u88e1\u53ef\u4ee5\u81ea\u8a02\u4e0b\u8f09\u4e0b\u4f86\u7684\u9810\u8a2d\u6a94\u540d\n        document.body.appendChild(a);\n        a.click();\n\n        \/\/ 6. \u6e05\u7406\u8a18\u61b6\u9ad4\n        document.body.removeChild(a);\n        URL.revokeObjectURL(blobUrl);\n    } catch (error) {\n        alert('\u4e0b\u8f09\u5931\u6557\uff0c\u8acb\u9577\u6309\u6309\u9215\u4e26\u9078\u64c7\u300c\u4e0b\u8f09\u76ee\u6a19\u6a94\u6848\u300d\u8655\u7406\u3002');\n        console.error(error);\n    } finally {\n        \/\/ 7. \u9084\u539f\u6309\u9215\u72c0\u614b\n        button.disabled = false;\n        button.innerText = '\u4e0b\u8f09\u5f71\u7247';\n        button.style.backgroundColor = '#007bff';\n    }\n});\n<\/script>\n\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u671f\u5f85\u5df2\u4e45\u7684\u300c\u65b0\u9032\u5de5\u696d\u4e09\u65e5\u54e1\u5de5\u65c5\u904a\u300d\u7d42\u65bc\u5728\u4e94\u6708\u5341\u516d\u65e5\u7684\u6e05\u6668\u62c9\u958b\u5e8f\u5e55\uff01\u7b2c\u4e00\u5929\u7684\u884c\u7a0b\u6211\u5011\u5c07\u5f9e\u53f0\u5357\u51fa\u767c\u4e00\u8def\u5411\u5317\uff0c\u8d70\u9032\u6843\u5712\u7684\u9748\u5c71\u79c0\u6c34\uff0c\u611f\u53d7\u5927\u81ea\u7136\u8207\u6b77\u53f2\u4ea4\u7e54\u7684\u9b45\u529b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u200b07:00 \u6e96\u6642\u555f\u822a\uff5c\u5e36\u8457\u597d\u5fc3\u60c5\u5f9e\u516c\u53f8\u51fa\u767c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u6e05\u6668\u4e03\u9ede\uff0c\u65b0\u9032\u5de5\u696d\u7684\u5925\u4f34\u5011\u5e36\u8457\u8f15\u4fbf\u7684\u884c\u56ca\u8207\u96c0\u8e8d\u7684\u5fc3\u60c5\uff0c\u65bc\u516c\u53f8\u9580\u53e3\u96c6\u5408\u4e0a\u8eca\u3002\u96a8\u8457\u4e09\u90e8\u5927\u5ba2\u8eca\u7de9\u7de9\u555f\u52d5\uff0c\u8c61\u5fb5\u8457\u9019\u5834\u70ba\u671f\u4e09\u5929\u7684\u5145\u96fb\u4e4b\u65c5\u6b63\u5f0f\u5c55\u958b\u3002\u5728\u9818\u968a\u7684\u5e36\u9818\u4e0b\uff0c\u6211\u5011\u5c07\u62cb\u958b\u65e5\u5e38\u7684\u5fd9\u788c\uff0c\u5411\u8457\u5c71\u6797\u51fa\u767c\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u200b\u6162\u6d3b\u4e2d\u8f49\uff5c\u53f0\u7cd6\u6708\u7709\u89c0\u5149\u7cd6\u5ee0<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u62b5\u9054\u6843\u5712\u524d\uff0c\u6211\u5011\u5148\u4f86\u5230\u5145\u6eff\u61f7\u820a\u6c23\u606f\u7684\u300c\u6708\u7709\u7cd6\u5ee0\u300d\u3002\u9019\u88e1\u4fdd\u7559\u4e86\u53f0\u7063\u88fd\u7cd6\u7522\u696d\u7684\u6b77\u53f2\u75d5\u8de1\uff0c\u5925\u4f34\u5011\u53ef\u4ee5\u6f2b\u6b65\u5728\u53e4\u8272\u53e4\u9999\u7684\u5712\u5340\uff0c\u54c1\u5690\u8457\u540d\u7684\u53f0\u7cd6\u51b0\u68d2\u3002\u9019\u662f\u4e00\u500b\u7d55\u4f73\u7684\u4f38\u5c55\u7a7a\u9593\uff0c\u8b93\u5927\u5bb6\u5728\u9032\u5165\u5c71\u5340\u524d\uff0c\u5148\u611f\u53d7\u4e00\u4efd\u60a0\u9592\u7684\u6642\u5149\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u200b\u820c\u5c16\u4e0a\u7684\u96f2\u5357\uff5c\u4e03\u5f69\u96f2\u5357 \u9f8d\u6f6d\u5e97<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u5348\u9910\u6642\u9593\uff0c\u6211\u5011\u62b5\u9054\u4f4d\u65bc\u9f8d\u6f6d\u7684\u300c\u4e03\u5f69\u96f2\u5357\u300d\u3002\u9019\u88e1\u4ee5\u9053\u5730\u7684\u96f2\u5357\u6599\u7406\u805e\u540d\uff0c\u8c50\u5bcc\u591a\u6a23\u7684\u6c11\u65cf\u8272\u5f69\u8207\u9bae\u9999\u5165\u5473\u7684\u83dc\u991a\uff0c\u70ba\u5927\u5bb6\u88dc\u5145\u9ad4\u529b\u3002\u5728\u7cbe\u7dfb\u7684\u7528\u9910\u74b0\u5883\u4e2d\uff0c\u5925\u4f34\u5011\u4e00\u908a\u4ea4\u6d41\u3001\u4e00\u908a\u4eab\u7528\u7570\u570b\u98a8\u60c5\u7f8e\u98df\uff0c\u70ba\u4e0b\u5348\u7684\u68ee\u6797\u6d74\u505a\u597d\u6e96\u5099\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u200b\u68ee\u6797\u6df1\u547c\u5438\uff5c\u5c0f\u70cf\u4f86\u98a8\u666f\u7279\u5b9a\u5340<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u9910\u5f8c\uff0c\u6211\u5011\u9032\u5165\u98a8\u666f\u5982\u756b\u7684\u5c0f\u70cf\u4f86\u3002\u5118\u7ba1\u5929\u7a7a\u6b65\u9053\u76ee\u524d\u56e0\u7dad\u4fee\u66ab\u6642\u7121\u6cd5\u6f2b\u6b65\uff0c\u4f46\u4f9d\u7136\u63a9\u84cb\u4e0d\u4e86\u9019\u88e1\u7684\u58ef\u95ca\u3002\u7ad9\u5728\u89c0\u666f\u53f0\u4e0a\uff0c\u9060\u773a\u90a3\u5f9e\u65b7\u5d16\u5954\u9a30\u800c\u4e0b\u7684\u7011\u5e03\uff0c\u98db\u6ffa\u7684\u6c34\u6c23\u5e36\u8457\u6eff\u6eff\u7684\u8ca0\u96e2\u5b50\uff0c\u8b93\u4eba\u7cbe\u795e\u4e00\u632f\u3002\u5c71\u6797\u7684\u7fe0\u7da0\u8207\u7011\u5e03\u7684\u767d\u7df4\u5171\u821e\uff0c\u6b63\u662f\u300c\u5c71\u6c34\u5171\u821e\u300d\u6700\u5b8c\u7f8e\u7684\u8a3b\u89e3\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u200b\u6b77\u53f2\u8207\u81ea\u7136\u5de1\u79ae\uff5c\u89d2\u677f\u5c71\u516c\u5712<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u63a5\u8457\u4f86\u5230\u7d20\u6709\u300c\u53f0\u7063\u5eec\u5c71\u300d\u7f8e\u8b7d\u7684\u89d2\u677f\u5c71\u516c\u5712\u3002\u9019\u88e1\u4e0d\u50c5\u6709\u5e7d\u975c\u7684\u6b65\u9053\u8207\u958b\u95ca\u7684\u8996\u91ce\uff0c\u9084\u80fd\u53c3\u89c0\u5145\u6eff\u795e\u7955\u611f\u7684\u6230\u5099\u96a7\u9053\u3002\u6f2b\u6b65\u65bc\u6b64\uff0c\u65e2\u80fd\u5438\u6536\u5c71\u9593\u6e05\u65b0\u7684\u82ac\u591a\u7cbe\uff0c\u4e5f\u80fd\u5728\u6b77\u53f2\u5efa\u7bc9\u4e2d\u611f\u53d7\u6b72\u6708\u7684\u975c\u597d\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u200b\u6e56\u5149\u4e4b\u7d04\uff5c\u5165\u4f4f\u77f3\u9580\u6c34\u5eab\u798f\u83ef\u6e21\u5047\u98ef\u5e97<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u7b2c\u4e00\u5929\u7684\u7d42\u9ede\u7ad9\uff0c\u4f86\u5230\u4f9d\u5c71\u508d\u6c34\u7684\u300c\u77f3\u9580\u6c34\u5eab\u798f\u83ef\u6e21\u5047\u98ef\u5e97\u300d\u3002\u5165\u4f4f\u9019\u9593\u98a8\u666f\u7b2c\u4e00\u6392\u7684\u98ef\u5e97\uff0c\u63a8\u958b\u7a97\u5373\u662f\u78a7\u6ce2\u842c\u9803\u7684\u6c34\u5eab\u7f8e\u666f\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u200b\u7b2c\u4e00\u5929\u7684\u884c\u7a0b\u5728\u7f8e\u666f\u8207\u7f8e\u98df\u4e2d\u756b\u4e0b\u53e5\u9ede\uff0c\u8b93\u6211\u5011\u990a\u7cbe\u84c4\u92b3\uff0c\u671f\u5f85\u660e\u5929\u66f4\u7cbe\u5f69\u7684\u70cf\u560e\u5f65\u79d8\u5883\u4e4b\u65c5\uff01<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u8f09\u5f71\u7247 \u200b\u671f\u5f85\u5df2\u4e45\u7684\u300c\u65b0\u9032\u5de5\u696d\u4e09\u65e5<\/p>\n","protected":false},"author":1,"featured_media":647,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,9],"tags":[],"class_list":["post-646","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","category-nearby-places"],"_links":{"self":[{"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/posts\/646","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=646"}],"version-history":[{"count":4,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/posts\/646\/revisions"}],"predecessor-version":[{"id":679,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/posts\/646\/revisions\/679"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/media\/647"}],"wp:attachment":[{"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=646"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=646"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=646"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}