{"id":658,"date":"2026-05-18T21:36:39","date_gmt":"2026-05-18T13:36:39","guid":{"rendered":"https:\/\/www.jhcis.idv.tw\/jan\/?p=658"},"modified":"2026-05-19T12:45:03","modified_gmt":"2026-05-19T04:45:03","slug":"%e3%80%90%e9%90%b5%e9%81%93%e5%82%b3%e5%a5%87%e3%83%bb%e6%bc%ab%e9%81%8a%e8%88%8a%e5%b1%b1%e7%b7%9a%e3%80%91%ef%bc%9a%e4%ba%ab%e6%b2%90%e6%99%a8%e6%9b%a6%e8%88%87%e9%90%b5%e9%81%93%e8%87%aa%e8%a1%8c","status":"publish","type":"post","link":"https:\/\/www.jhcis.idv.tw\/jan\/?p=658","title":{"rendered":"\u3010\u9435\u9053\u50b3\u5947\u30fb\u6f2b\u904a\u820a\u5c71\u7dda\u3011\uff1a\u4eab\u6c90\u6668\u66e6\u8207\u9435\u9053\u81ea\u884c\u8eca\u7d42\u7ae0"},"content":{"rendered":"\n<figure class=\"wp-block-video\"><video autoplay controls loop muted src=\"\/video\/\u5f71\u7247\/\u5f71\u97f3\u5eab\/2026\/20260518.\u3010\u9435\u9053\u50b3\u5947\u30fb\u6f2b\u904a\u820a\u5c71\u7dda\u3011\uff1a\u4eab\u6c90\u6668\u66e6\u8207\u9435\u9053\u81ea\u884c\u8eca\u7d42\u7ae0\/20260518.\u3010\u9435\u9053\u50b3\u5947\u30fb\u6f2b\u904a\u820a\u5c71\u7dda\u3011\uff1a\u4eab\u6c90\u6668\u66e6\u8207\u9435\u9053\u81ea\u884c\u8eca\u7d42\u7ae0.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 = '\/video\/\u5f71\u7247\/\u5f71\u97f3\u5eab\/2026\/20260518.\u3010\u9435\u9053\u50b3\u5947\u30fb\u6f2b\u904a\u820a\u5c71\u7dda\u3011\uff1a\u4eab\u6c90\u6668\u66e6\u8207\u9435\u9053\u81ea\u884c\u8eca\u7d42\u7ae0\/20260518.\u3010\u9435\u9053\u50b3\u5947\u30fb\u6f2b\u904a\u820a\u5c71\u7dda\u3011\uff1a\u4eab\u6c90\u6668\u66e6\u8207\u9435\u9053\u81ea\u884c\u8eca\u7d42\u7ae0.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<h3 class=\"wp-block-heading\">\u258c\u6668\u9593\u60a0\u904a\uff1a\u6c90\u6d74\u5728\u4eab\u6c90\u6642\u5149\u7684\u611c\u610f\u6642\u5149<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u65c5\u7a0b\u7684\u6700\u5f8c\u4e00\u5929\uff0c\u6211\u5011\u5728<strong>\u4eab\u6c90\u6642\u5149\u838a\u5712\u6e21\u5047\u9152\u5e97<\/strong>\u7684 B1 \u6c90\u98df\u9910\u5ef3\u4eab\u7528\u7cbe\u7dfb\u7684\u81ea\u52a9\u65e9\u9910\u3002\u9910\u5f8c\uff0c\u5925\u4f34\u5011\u6f2b\u6b65\u65bc\u98ef\u5e97\u4e00\u6a13\u5927\u5ef3\u53ca\u5ee3\u95ca\u7684\u6236\u5916\u5712\u5340\uff0c\u611f\u53d7\u6668\u9593\u6e05\u65b0\u7684\u7a7a\u6c23\u8207\u5efa\u7bc9\u4e4b\u7f8e\uff0c\u70ba\u63a5\u4e0b\u4f86\u7684\u884c\u7a0b\u6ce8\u6eff\u6d3b\u529b\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u258c\u5728\u5730\u5de1\u79ae\uff1a\u88d5\u82b3\u98df\u54c1\u8207\u4e09\u7fa9\u7f8e\u994c<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u96a8\u5f8c\uff0c\u6211\u5011\u62b5\u9054\u82d1\u88e1\u77e5\u540d\u7684<strong>\u88d5\u82b3\u98df\u54c1<\/strong>\uff0c\u5c55\u958b\u4f34\u624b\u79ae\u8cfc\u7269\u884c\u7a0b\uff0c\u5c07\u5728\u5730\u540d\u7522\u8207\u96f6\u98df\u6536\u5165\u56ca\u4e2d\u3002\u5348\u9593\u8f49\u5f80<strong>\u65b0\u6708\u68a7\u6850\u4e09\u7fa9\u5e97<\/strong>\uff0c\u5728\u6975\u5177\u85dd\u8853\u6c23\u606f\u7684\u74b0\u5883\u4e2d\u7528\u9910\u3002\u7279\u5225\u662f\u9910\u5ef3\u5916\u7684\u6dbc\u4ead\u9020\u666f\uff0c\u4f34\u96a8\u4e00\u5927\u7fa4\u7fe9\u7fe9\u8d77\u821e\u7684\u8774\u8776\uff0c\u8996\u89ba\u8207\u5473\u89ba\u7684\u96d9\u91cd\u9957\u5bb4\u4ee4\u5168\u54e1\u8b9a\u5606\u4e0d\u5df2\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u258c\u6587\u5316\u9ad4\u9a57\uff1a\u820a\u5c71\u7dda\u9435\u9053\u81ea\u884c\u8eca<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u5348\u5f8c\uff0c\u6211\u5011\u4f86\u5230\u5145\u6eff\u61f7\u820a\u6c1b\u570d\u7684<strong>\u52dd\u8208\u706b\u8eca\u7ad9<\/strong>\u3002\u5168\u9ad4\u5925\u4f34\u5206\u7d44\u642d\u4e58 4 \u4eba\u4e00\u7d44\u7684\u9435\u9053\u5c0f\u706b\u8eca\uff0c\u6cbf\u8457\u820a\u5c71\u7dda\u7de9\u7de9\u524d\u884c\u3002\u900f\u904e\u9435\u9053\u81ea\u884c\u8eca\u7684\u8996\u89d2\uff0c\u6211\u5011\u6df1\u5165\u53c3\u89c0\u4e86\u9435\u9053\u6cbf\u9014\u7684\u53e4\u6a38\u666f\u81f4\uff0c\u4e26\u62b5\u9054\u5b8f\u5049\u7684\u9f8d\u9a30\u65b7\u6a4b\uff0c\u5171\u540c\u898b\u8b49\u6b77\u53f2\u7559\u4e0b\u7684\u58ef\u9e97\u75d5\u8de1\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u258c\u5713\u6eff\u843d\u5e55\uff1a\u6d77\u5bb4\u9910\u5ef3\u7684\u4ea4\u6d41\u9957\u5bb4<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u65c5\u7a0b\u7684\u7d42\u9ede\uff0c\u6211\u5011\u56de\u5230\u65b0\u71df\uff0c\u5728<strong>\u6d77\u5bb4\u9910\u5ef3<\/strong>\u8209\u884c\u6700\u5f8c\u7684\u665a\u5bb4\u3002\u5728\u8c50\u5bcc\u7684\u4f73\u991a\u8207\u8f15\u9b06\u7684\u6c1b\u570d\u4e2d\uff0c\u5927\u5bb6\u5206\u4eab\u9019\u4e09\u5929\u7684\u6240\u898b\u6240\u805e\u8207\u5fc3\u5f97\u9ad4\u6703\u3002\u9019\u5834\u8003\u5bdf\u4e4b\u65c5\u4e0d\u50c5\u589e\u9032\u4e86\u5718\u968a\u7684\u51dd\u805a\u529b\uff0c\u66f4\u5728\u6bcf\u4f4d\u5925\u4f34\u5fc3\u4e2d\u7559\u4e0b\u4e86\u73cd\u8cb4\u7684\u7d00\u9304\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u4e0b\u8f09\u5f71\u7247 \u258c\u6668\u9593\u60a0\u904a\uff1a\u6c90\u6d74\u5728\u4eab\u6c90\u6642\u5149<\/p>\n","protected":false},"author":1,"featured_media":661,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1,9],"tags":[],"class_list":["post-658","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\/658","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=658"}],"version-history":[{"count":9,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions"}],"predecessor-version":[{"id":676,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/posts\/658\/revisions\/676"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=\/wp\/v2\/media\/661"}],"wp:attachment":[{"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=658"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=658"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jhcis.idv.tw\/jan\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=658"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}