{"id":9041,"date":"2025-03-07T17:39:05","date_gmt":"2025-03-07T09:39:05","guid":{"rendered":"https:\/\/xinliceyan.org\/?p=9041"},"modified":"2025-05-22T21:24:51","modified_gmt":"2025-05-22T13:24:51","slug":"taiwan-political-test-blue-green","status":"publish","type":"post","link":"https:\/\/xinliceyan.org\/zh\/taiwan-political-test-blue-green","title":{"rendered":"\u53f0\u6e7e\u653f\u6cbb\u5149\u8c31\u503e\u5411\u68c0\u6d4b\uff5c\u4f60\u662f\u84dd\u7eff\u54ea\u4e00\u6d3e\u652f\u6301\u8005\uff1f \uff0810\u9898\uff09"},"content":{"rendered":"<!-- HTML \u7d50\u69cb -->\n<div id=\"taiwan-quiz-container\">\n    <!-- \u5f15\u5c0e\u9801 -->\n    <section id=\"quiz-intro-page\" class=\"taiwan-quiz-page active\">\n        <header class=\"taiwan-intro-header\">\n            <h1 class=\"taiwan-main-title\">\u53f0\u7063\u653f\u6cbb\u5149\u8b5c\u50be\u5411\u6aa2\u6e2c<\/h1>\n            <p class=\"taiwan-subtitle\">\u4f60\u662f\u85cd\u7da0\u54ea\u4e00\u6d3e\u652f\u6301\u8005\uff1f<\/p>\n        <\/header>\n        \n        <div class=\"taiwan-intro-features\">\n            <div class=\"taiwan-feature-item\">\n                <div class=\"taiwan-feature-icon\">\ud83d\uddf3\ufe0f<\/div>\n                <h3>\u7cbe\u6e96\u6e2c\u91cf<\/h3>\n                <p>\u900f\u904e10\u500b\u7cbe\u5fc3\u8a2d\u8a08\u7684\u554f\u984c\uff0c\u6e96\u78ba\u8a55\u4f30\u60a8\u7684\u653f\u6cbb\u7acb\u5834\u50be\u5411<\/p>\n            <\/div>\n            <div class=\"taiwan-feature-item\">\n                <div class=\"taiwan-feature-icon\">\ud83d\udcca<\/div>\n                <h3>\u6578\u64da\u53ef\u8996\u5316<\/h3>\n                <p>\u76f4\u89c0\u5716\u8868\u5c55\u793a\u6e2c\u9a57\u7d50\u679c\uff0c\u6e05\u695a\u4e86\u89e3\u81ea\u5df1\u7684\u653f\u6cbb\u5149\u8b5c\u4f4d\u7f6e<\/p>\n            <\/div>\n            <div class=\"taiwan-feature-item\">\n                <div class=\"taiwan-feature-icon\">\ud83d\udd12<\/div>\n                <h3>\u9690\u79c1\u4fdd\u62a4<\/h3>\n                <p>\u6e2c\u9a57\u7d50\u679c\u50c5\u5728\u672c\u5730\u8655\u7406\uff0c\u4e0d\u6703\u5132\u5b58\u6216\u4e0a\u50b3\u81f3\u4f3a\u670d\u5668<\/p>\n            <\/div>\n        <\/div>\n        \n        <div class=\"taiwan-intro-disclaimer\">\n            <p>\u672c\u6e2c\u9a57\u50c5\u4f9b\u53c3\u8003\uff0c\u5be6\u969b\u653f\u6cbb\u7acb\u5834\u53d7\u591a\u56e0\u7d20\u5f71\u97ff\u3002\u6e2c\u9a57\u7d50\u679c\u8acb\u52ff\u4f5c\u70ba\u653b\u64ca\u4e0d\u540c\u7acb\u5834\u8005\u4e4b\u4f9d\u64da\u3002\u672c\u7db2\u7ad9\u4e0d\u6703\u5c07\u60a8\u7684\u6e2c\u9a57\u7d50\u679c\u767c\u9001\u5230\u7db2\u7ad9\u4f3a\u670d\u5668\uff0c\u4e0d\u6703\u5132\u5b58\u60a8\u7684\u6e2c\u9a57\u7d50\u679c\uff0c\u8acb\u81ea\u884c\u4fdd\u5b58\u3002<\/p>\n        <\/div>\n        \n        <button id=\"taiwan-start-quiz-btn\" class=\"taiwan-start-btn\">\u5f00\u59cb\u6d4b\u9a8c<\/button>\n    <\/section>\n\n    <!-- \u6e2c\u9a57\u9801 -->\n    <section id=\"quiz-test-page\" class=\"taiwan-quiz-page\">\n        <header class=\"taiwan-quiz-header\">\n            <h2>\u53f0\u7063\u653f\u6cbb\u5149\u8b5c\u50be\u5411\u6aa2\u6e2c<\/h2>\n            <div id=\"taiwan-progress-container\" class=\"taiwan-progress-container\">\n                <div class=\"taiwan-progress-info\">\n                    <span id=\"taiwan-current-question\">1<\/span> \/ <span id=\"taiwan-total-questions\">10<\/span>\n                <\/div>\n                <div class=\"taiwan-progress-bar\">\n                    <div id=\"taiwan-progress-fill\" class=\"taiwan-progress-fill\"><\/div>\n                <\/div>\n            <\/div>\n        <\/header>\n        \n        <article class=\"taiwan-question-container\">\n            <h3 id=\"taiwan-question-text\" class=\"taiwan-question-text\"><\/h3>\n            <div id=\"taiwan-options-container\" class=\"taiwan-options-container\"><\/div>\n        <\/article>\n        \n        <nav class=\"taiwan-quiz-navigation\">\n            <button id=\"taiwan-prev-btn\" class=\"taiwan-nav-btn taiwan-prev-btn\" style=\"display: none;\">\u4e0a\u4e00\u9898<\/button>\n        <\/nav>\n    <\/section>\n\n    <!-- \u7d50\u679c\u9801 -->\n    <section id=\"quiz-result-page\" class=\"taiwan-quiz-page\">\n        <header class=\"taiwan-result-header\">\n            <h2>\u6d4b\u9a8c\u7ed3\u679c<\/h2>\n        <\/header>\n        \n        <article class=\"taiwan-result-content\">\n            <div class=\"taiwan-result-summary\">\n                <h3 id=\"taiwan-result-category\" class=\"taiwan-result-category\"><\/h3>\n                <p id=\"taiwan-result-description\" class=\"taiwan-result-description\"><\/p>\n            <\/div>\n            \n            <div class=\"taiwan-chart-container\">\n                <canvas id=\"taiwan-result-chart\"><\/canvas>\n            <\/div>\n            \n            <div id=\"taiwan-detailed-analysis\" class=\"taiwan-detailed-analysis\"><\/div>\n        <\/article>\n        \n        <footer class=\"taiwan-result-footer\">\n            <button id=\"taiwan-restart-btn\" class=\"taiwan-restart-btn\">\u91cd\u65b0\u6d4b\u9a8c<\/button>\n        <\/footer>\n    <\/section>\n<\/div>\n\n<!-- CSS \u6a23\u5f0f -->\n<style>\n\/* CSS\u8b8a\u6578\u5b9a\u7fa9 *\/\n:root {\n    --taiwan-primary: #2563eb;\n    --taiwan-primary-light: #3b82f6;\n    --taiwan-primary-dark: #1d4ed8;\n    --taiwan-secondary: #f59e0b;\n    --taiwan-success: #10b981;\n    --taiwan-danger: #ef4444;\n    --taiwan-text-primary: #1f2937;\n    --taiwan-text-secondary: #6b7280;\n    --taiwan-text-light: #9ca3af;\n    --taiwan-bg-primary: #ffffff;\n    --taiwan-bg-secondary: #f9fafb;\n    --taiwan-bg-accent: #f3f4f6;\n    --taiwan-border: #e5e7eb;\n    --taiwan-border-light: #f3f4f6;\n    --taiwan-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n    --taiwan-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n    --taiwan-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);\n    --taiwan-radius: 8px;\n    --taiwan-transition: all 0.2s ease-in-out;\n}\n\n\/* \u5bb9\u5668\u6a23\u5f0f *\/\n#taiwan-quiz-container {\n    max-width: 800px;\n    margin: 0 auto;\n    padding: 16px;\n    font-family: -apple-system, BlinkMacSystemFont, \"SF Pro Text\", \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans TC\", sans-serif;\n    font-size: 18px;\n    line-height: 1.6;\n    color: var(--taiwan-text-primary);\n    background-color: var(--taiwan-bg-secondary);\n}\n\n\/* \u9801\u9762\u901a\u7528\u6a23\u5f0f *\/\n.taiwan-quiz-page {\n    width: 100%;\n    background: var(--taiwan-bg-primary);\n    border-radius: calc(var(--taiwan-radius) * 2);\n    box-shadow: var(--taiwan-shadow-lg);\n    padding: 32px;\n    display: none;\n    min-height: 600px;\n}\n\n.taiwan-quiz-page.active {\n    display: block;\n}\n\n\/* \u5f15\u5c0e\u9801\u6a23\u5f0f *\/\n.taiwan-intro-header {\n    text-align: center;\n    margin-bottom: 48px;\n}\n\n.taiwan-main-title {\n    font-size: 40px;\n    font-weight: 700;\n    color: var(--taiwan-primary);\n    margin-bottom: 16px;\n    background: linear-gradient(135deg, var(--taiwan-primary), var(--taiwan-primary-light));\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    background-clip: text;\n}\n\n.taiwan-subtitle {\n    font-size: 24px;\n    color: var(--taiwan-text-secondary);\n    font-weight: 500;\n}\n\n.taiwan-intro-features {\n    display: flex;\n    justify-content: space-between;\n    gap: 20px;\n    margin-bottom: 48px;\n}\n\n.taiwan-feature-item {\n    flex: 1;\n    text-align: center;\n    padding: 24px 16px;\n    background: var(--taiwan-bg-secondary);\n    border-radius: var(--taiwan-radius);\n    border: 1px solid var(--taiwan-border-light);\n    transition: var(--taiwan-transition);\n}\n\n.taiwan-feature-item:hover {\n    transform: translateY(-4px);\n    box-shadow: var(--taiwan-shadow-md);\n}\n\n.taiwan-feature-icon {\n    font-size: 48px;\n    margin-bottom: 16px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    width: 80px;\n    height: 80px;\n    margin: 0 auto 16px;\n    background: linear-gradient(135deg, var(--taiwan-primary), var(--taiwan-primary-light));\n    border-radius: 50%;\n    box-shadow: var(--taiwan-shadow-md);\n}\n\n.taiwan-feature-item h3 {\n    font-size: 22px;\n    font-weight: 600;\n    margin-bottom: 12px;\n    color: var(--taiwan-text-primary);\n}\n\n.taiwan-feature-item p {\n    color: var(--taiwan-text-secondary);\n    line-height: 1.5;\n}\n\n.taiwan-intro-disclaimer {\n    background: var(--taiwan-bg-accent);\n    padding: 24px;\n    border-radius: var(--taiwan-radius);\n    border-left: 4px solid var(--taiwan-secondary);\n    margin-bottom: 32px;\n}\n\n.taiwan-intro-disclaimer p {\n    color: var(--taiwan-text-secondary);\n    font-size: 16px;\n    line-height: 1.6;\n}\n\n.taiwan-start-btn {\n    width: 100%;\n    max-width: 320px;\n    margin: 0 auto;\n    display: block;\n    padding: 16px 32px;\n    font-size: 20px;\n    font-weight: 600;\n    color: white;\n    background: linear-gradient(135deg, var(--taiwan-primary), var(--taiwan-primary-light));\n    border: none;\n    border-radius: var(--taiwan-radius);\n    cursor: pointer;\n    transition: var(--taiwan-transition);\n    box-shadow: var(--taiwan-shadow-md);\n    min-height: 60px;\n}\n\n.taiwan-start-btn:hover {\n    transform: translateY(-2px);\n    box-shadow: var(--taiwan-shadow-lg);\n    background: linear-gradient(135deg, var(--taiwan-primary-dark), var(--taiwan-primary));\n}\n\n\/* \u6e2c\u9a57\u9801\u6a23\u5f0f *\/\n.taiwan-quiz-header {\n    text-align: center;\n    margin-bottom: 32px;\n}\n\n.taiwan-quiz-header h2 {\n    font-size: 28px;\n    font-weight: 600;\n    color: var(--taiwan-text-primary);\n    margin-bottom: 24px;\n}\n\n.taiwan-progress-container {\n    max-width: 400px;\n    margin: 0 auto;\n}\n\n.taiwan-progress-info {\n    text-align: center;\n    margin-bottom: 8px;\n    font-size: 16px;\n    color: var(--taiwan-text-secondary);\n}\n\n.taiwan-progress-bar {\n    width: 100%;\n    height: 8px;\n    background: var(--taiwan-border-light);\n    border-radius: 4px;\n    overflow: hidden;\n}\n\n.taiwan-progress-fill {\n    height: 100%;\n    background: linear-gradient(90deg, var(--taiwan-primary), var(--taiwan-primary-light));\n    transition: width 0.3s ease;\n    width: 0%;\n}\n\n.taiwan-question-container {\n    margin-bottom: 32px;\n}\n\n.taiwan-question-text {\n    font-size: 22px;\n    font-weight: 600;\n    color: var(--taiwan-text-primary);\n    margin-bottom: 24px;\n    line-height: 1.4;\n}\n\n.taiwan-options-container {\n    display: flex;\n    flex-direction: column;\n    gap: 16px;\n}\n\n.taiwan-option-btn {\n    width: 100%;\n    padding: 20px 24px;\n    font-size: 18px;\n    color: var(--taiwan-text-primary);\n    background: var(--taiwan-bg-secondary);\n    border: 2px solid var(--taiwan-border);\n    border-radius: var(--taiwan-radius);\n    cursor: pointer;\n    transition: var(--taiwan-transition);\n    text-align: left;\n    line-height: 1.5;\n    min-height: 68px;\n    display: flex;\n    align-items: center;\n}\n\n.taiwan-option-btn:hover {\n    border-color: var(--taiwan-primary-light);\n    background: var(--taiwan-bg-primary);\n    transform: translateY(-2px);\n    box-shadow: var(--taiwan-shadow-md);\n    color: var(--taiwan-text-primary);\n}\n\n.taiwan-option-btn.selected {\n    background: var(--taiwan-primary);\n    border-color: var(--taiwan-primary);\n    color: white;\n    box-shadow: var(--taiwan-shadow-md);\n}\n\n.taiwan-quiz-navigation {\n    display: flex;\n    justify-content: center;\n    margin-top: 32px;\n}\n\n.taiwan-nav-btn {\n    padding: 12px 24px;\n    font-size: 16px;\n    font-weight: 500;\n    background: var(--taiwan-bg-secondary);\n    border: 1px solid var(--taiwan-border);\n    border-radius: var(--taiwan-radius);\n    cursor: pointer;\n    transition: var(--taiwan-transition);\n    color: var(--taiwan-text-primary);\n    min-height: 48px;\n    min-width: 120px;\n}\n\n.taiwan-nav-btn:hover {\n    background: var(--taiwan-bg-accent);\n    border-color: var(--taiwan-primary-light);\n}\n\n\/* \u7d50\u679c\u9801\u6a23\u5f0f *\/\n.taiwan-result-header {\n    text-align: center;\n    margin-bottom: 32px;\n}\n\n.taiwan-result-header h2 {\n    font-size: 28px;\n    font-weight: 600;\n    color: var(--taiwan-text-primary);\n}\n\n.taiwan-result-summary {\n    text-align: center;\n    margin-bottom: 40px;\n}\n\n.taiwan-result-category {\n    font-size: 32px;\n    font-weight: 700;\n    margin-bottom: 16px;\n    background: linear-gradient(135deg, var(--taiwan-primary), var(--taiwan-primary-light));\n    -webkit-background-clip: text;\n    -webkit-text-fill-color: transparent;\n    background-clip: text;\n}\n\n.taiwan-result-description {\n    font-size: 20px;\n    color: var(--taiwan-text-secondary);\n    line-height: 1.5;\n    max-width: 600px;\n    margin: 0 auto;\n}\n\n.taiwan-chart-container {\n    max-width: 600px;\n    margin: 0 auto 40px;\n    height: 400px;\n    display: flex;\n    align-items: center;\n    justify-content: center;\n    background: var(--taiwan-bg-secondary);\n    border-radius: var(--taiwan-radius);\n    padding: 20px;\n}\n\n.taiwan-detailed-analysis {\n    background: var(--taiwan-bg-secondary);\n    padding: 24px;\n    border-radius: var(--taiwan-radius);\n    margin-bottom: 32px;\n}\n\n.taiwan-analysis-section {\n    margin-bottom: 24px;\n}\n\n.taiwan-analysis-section:last-child {\n    margin-bottom: 0;\n}\n\n.taiwan-analysis-section h4 {\n    font-size: 20px;\n    font-weight: 600;\n    color: var(--taiwan-text-primary);\n    margin-bottom: 12px;\n}\n\n.taiwan-analysis-section p {\n    color: var(--taiwan-text-secondary);\n    line-height: 1.6;\n}\n\n.taiwan-restart-btn {\n    width: 100%;\n    max-width: 280px;\n    margin: 0 auto;\n    display: block;\n    padding: 16px 32px;\n    font-size: 18px;\n    font-weight: 600;\n    color: white;\n    background: linear-gradient(135deg, var(--taiwan-success), #059669);\n    border: none;\n    border-radius: var(--taiwan-radius);\n    cursor: pointer;\n    transition: var(--taiwan-transition);\n    box-shadow: var(--taiwan-shadow-md);\n    min-height: 60px;\n}\n\n.taiwan-restart-btn:hover {\n    transform: translateY(-2px);\n    box-shadow: var(--taiwan-shadow-lg);\n    background: linear-gradient(135deg, #059669, #047857);\n}\n\n\/* \u97ff\u61c9\u5f0f\u8a2d\u8a08 *\/\n@media (max-width: 768px) {\n    #taiwan-quiz-container {\n        padding: 8px;\n    }\n\n    .taiwan-quiz-page {\n        padding: 24px 20px;\n        border-radius: var(--taiwan-radius);\n    }\n\n    .taiwan-main-title {\n        font-size: 32px;\n    }\n\n    .taiwan-subtitle {\n        font-size: 20px;\n    }\n\n    .taiwan-intro-features {\n        grid-template-columns: 1fr;\n        gap: 24px;\n    }\n\n    .taiwan-feature-item {\n        padding: 20px;\n    }\n\n    .taiwan-question-text {\n        font-size: 20px;\n    }\n\n    .taiwan-option-btn {\n        padding: 16px 20px;\n        font-size: 17px;\n    }\n\n    .taiwan-chart-container {\n        height: 300px;\n        margin-bottom: 32px;\n    }\n}\n\n@media (max-width: 480px) {\n    #taiwan-quiz-container {\n        font-size: 16px;\n    }\n\n    .taiwan-quiz-page {\n        padding: 20px 16px;\n    }\n\n    .taiwan-main-title {\n        font-size: 28px;\n    }\n\n    .taiwan-subtitle {\n        font-size: 18px;\n    }\n\n    .taiwan-question-text {\n        font-size: 19px;\n    }\n\n    .taiwan-option-btn {\n        font-size: 16px;\n        padding: 14px 18px;\n    }\n}\n<\/style>\n\n<!-- Chart.js \u5eab -->\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/Chart.js\/4.4.1\/chart.umd.min.js\"><\/script>\n\n<!-- JavaScript \u884c\u70ba -->\n<script>\n(function() {\n    'use strict';\n\n    \/\/ \u6e2c\u9a57\u6578\u64da\n    const QUIZ_DATA = {\n        questions: [\n            {\n                text: \"\u95dc\u65bc\u81ea\u6211\u8eab\u4efd\u8a8d\u540c\uff0c\u4f60\u6700\u63a5\u8fd1\u54ea\u7a2e\u8aaa\u6cd5\uff1f\",\n                options: [\n                    { text: \"\u6211\u662f\u53f0\u7063\u4eba\uff0c\u4e0d\u662f\u4e2d\u570b\u4eba\", score: 2 },\n                    { text: \"\u6211\u662f\u4e2d\u83ef\u6c11\u570b\u570b\u6c11\uff0c\u4e5f\u662f\u53f0\u7063\u4eba\", score: 0 },\n                    { text: \"\u6211\u662f\u4e2d\u83ef\u6c11\u65cf\u4e00\u4efd\u5b50\", score: -2 }\n                ]\n            },\n            {\n                text: \"\u5169\u5cb8\u95dc\u4fc2\u61c9\u5982\u4f55\u767c\u5c55\uff1f\",\n                options: [\n                    { text: \"\u53f0\u7063\u61c9\u722d\u53d6\u570b\u969b\u627f\u8a8d\u4e3b\u6b0a\u7368\u7acb\", score: 2 },\n                    { text: \"\u7dad\u6301\u73fe\u72c0\u4e0d\u7d71\u4e0d\u7368\", score: 0 },\n                    { text: \"\u7d42\u6975\u76ee\u6a19\u61c9\u662f\u548c\u5e73\u7d71\u4e00\", score: -2 }\n                ]\n            },\n            {\n                text: \"\u5c0d\u6b77\u53f2\u4e8b\u4ef6\u7684\u770b\u6cd5\uff1a\",\n                options: [\n                    { text: \"\u4e8c\u4e8c\u516b\u4e8b\u4ef6\u662f\u5916\u4f86\u653f\u6b0a\u5c60\u6bba\u53f0\u7063\u4eba\", score: 2 },\n                    { text: \"\u9700\u540c\u6642\u53cd\u7701\u5a01\u6b0a\u6642\u671f\u8207\u672c\u571f\u653f\u9ee8\u57f7\u653f\", score: 0 },\n                    { text: \"\u8f49\u578b\u6b63\u7fa9\u9020\u6210\u793e\u6703\u5c0d\u7acb\", score: -2 }\n                ]\n            },\n            {\n                text: \"\u5c0d\u5916\u7d93\u6fdf\u653f\u7b56\u65b9\u5411\uff1a\",\n                options: [\n                    { text: \"\u52a0\u5f37\u8207\u65b0\u5357\u5411\u570b\u5bb6\u5408\u4f5c\", score: 1 },\n                    { text: \"\u5169\u5cb8\u7d93\u8cbf\u8207\u570b\u969b\u767c\u5c55\u4e26\u91cd\", score: 0 },\n                    { text: \"\u7c3d\u8a02ECFA\u5c0d\u53f0\u7063\u6709\u5229\", score: -1 }\n                ]\n            },\n            {\n                text: \"\u570b\u969b\u53c3\u8207\u65b9\u5f0f\uff1a\",\n                options: [\n                    { text: \"\u4ee5\u53f0\u7063\u540d\u7fa9\u52a0\u5165\u570b\u969b\u7d44\u7e54\", score: 2 },\n                    { text: \"\u63a5\u53d7\u5f48\u6027\u540d\u7a31\u53c3\u8207\", score: 0 },\n                    { text: \"\u5728\u4e2d\u83ef\u6c11\u570b\u67b6\u69cb\u4e0b\u52d9\u5be6\u5916\u4ea4\", score: -2 }\n                ]\n            },\n            {\n                text: \"\u793e\u6703\u8b70\u984c\u7acb\u5834\uff1a\",\n                options: [\n                    { text: \"\u652f\u6301\u540c\u5a5a\u3001\u8f49\u578b\u6b63\u7fa9\u7b49\u9032\u6b65\u50f9\u503c\", score: 1 },\n                    { text: \"\u500b\u5225\u8b70\u984c\u9700\u793e\u6703\u5171\u8b58\", score: 0 },\n                    { text: \"\u50b3\u7d71\u5bb6\u5ead\u50f9\u503c\u66f4\u91cd\u8981\", score: -1 }\n                ]\n            },\n            {\n                text: \"\u6587\u5316\u6559\u80b2\u653f\u7b56\uff1a\",\n                options: [\n                    { text: \"\u8ab2\u7db1\u61c9\u5f37\u5316\u53f0\u7063\u4e3b\u9ad4\u6027\", score: 2 },\n                    { text: \"\u4fdd\u6301\u73fe\u884c\u5e73\u8861\u7248\", score: 0 },\n                    { text: \"\u61c9\u6062\u5fa9\u4e2d\u570b\u53f2\u89c0\u6bd4\u4f8b\", score: -2 }\n                ]\n            },\n            {\n                text: \"\u5a92\u9ad4\u9078\u64c7\u504f\u597d\uff1a\",\n                options: [\n                    { text: \"\u5e38\u770b\u81ea\u7531\u6642\u5831\/\u4e09\u7acb\", score: 1 },\n                    { text: \"\u6df7\u5408\u89c0\u770b\u4e0d\u540c\u7acb\u5834\u5a92\u9ad4\", score: 0 },\n                    { text: \"\u4e3b\u8981\u770b\u4e2d\u5929\/TVBS\", score: -1 }\n                ]\n            },\n            {\n                text: \"\u5730\u65b9\u653f\u6cbb\u89c0\u9ede\uff1a\",\n                options: [\n                    { text: \"\u80af\u5b9a\u9ad8\u96c4\u5e02\u9577\u9673\u5176\u9081\u65bd\u653f\", score: 2 },\n                    { text: \"\u5c0d\u5404\u7e23\u5e02\u9577\u6709\u8912\u6709\u8cb6\", score: 0 },\n                    { text: \"\u6b23\u8cde\u53f0\u4e2d\u5e02\u9577\u76e7\u79c0\u71d5\u8868\u73fe\", score: -2 }\n                ]\n            },\n            {\n                text: \"\u6295\u7968\u884c\u70ba\u6a21\u5f0f\uff1a\",\n                options: [\n                    { text: \"\u5f9e\u672a\u6295\u7d66\u570b\u6c11\u9ee8\u5019\u9078\u4eba\", score: 2 },\n                    { text: \"\u4f9d\u5019\u9078\u4eba\u689d\u4ef6\u6c7a\u5b9a\", score: 0 },\n                    { text: \"\u9577\u671f\u652f\u6301\u570b\u6c11\u9ee8\u7c4d\u5019\u9078\u4eba\", score: -2 }\n                ]\n            }\n        ]\n    };\n\n    \/\/ \u7d50\u679c\u5206\u6790\u6578\u64da\n    const RESULT_CATEGORIES = {\n        \"\u6df1\u85cd\u652f\u6301\u8005\": {\n            range: [-20, -13],\n            description: \"\u60a8\u5177\u6709\u5f37\u70c8\u7684\u4e2d\u83ef\u6c11\u570b\u8a8d\u540c\uff0c\u652f\u6301\u7dad\u8b77\u5169\u5cb8\u95dc\u4fc2\u7684\u548c\u5e73\u7a69\u5b9a\uff0c\u53cd\u5c0d\u53f0\u7368\uff0c\u91cd\u8996\u50b3\u7d71\u6587\u5316\u50f9\u503c\uff0c\u50be\u5411\u652f\u6301\u570b\u6c11\u9ee8\u53ca\u5176\u7406\u5ff5\u3002\",\n            color: \"#1e40af\",\n            analysis: \"\u60a8\u7684\u653f\u6cbb\u7acb\u5834\u9ad4\u73fe\u4e86\u5c0d\u4e2d\u83ef\u6c11\u570b\u61b2\u653f\u9ad4\u5236\u7684\u5805\u6301\uff0c\u4ee5\u53ca\u5c0d\u4e2d\u83ef\u6587\u5316\u50b3\u7d71\u7684\u91cd\u8996\u3002\u5728\u5169\u5cb8\u95dc\u4fc2\u4e0a\uff0c\u60a8\u652f\u6301\u7dad\u8b77\u548c\u5e73\u7a69\u5b9a\uff0c\u53cd\u5c0d\u4efb\u4f55\u5f62\u5f0f\u7684\u53f0\u7368\u4e3b\u5f35\u3002\"\n        },\n        \"\u6cdb\u85cd\u50be\u5411\u8005\": {\n            range: [-12, -8],\n            description: \"\u60a8\u50be\u5411\u652f\u6301\u85cd\u71df\u653f\u9ee8\uff0c\u8a8d\u540c\u4e2d\u83ef\u6c11\u570b\u9ad4\u5236\uff0c\u5728\u5169\u5cb8\u95dc\u4fc2\u4e0a\u8f03\u70ba\u958b\u653e\uff0c\u4f46\u4e0d\u6392\u65a5\u7dad\u6301\u73fe\u72c0\u3002\",\n            color: \"#3b82f6\",\n            analysis: \"\u60a8\u5728\u653f\u6cbb\u7acb\u5834\u4e0a\u504f\u5411\u4fdd\u5b88\u7a69\u5065\uff0c\u652f\u6301\u65e2\u6709\u7684\u61b2\u653f\u9ad4\u5236\uff0c\u540c\u6642\u5728\u793e\u6703\u8b70\u984c\u4e0a\u4fdd\u6301\u76f8\u5c0d\u50b3\u7d71\u7684\u89c0\u9ede\u3002\"\n        },\n        \"\u4e2d\u7acb\u504f\u85cd\": {\n            range: [-7, -3],\n            description: \"\u60a8\u7684\u653f\u6cbb\u7acb\u5834\u7565\u5fae\u504f\u5411\u85cd\u71df\uff0c\u4f46\u4fdd\u6301\u76f8\u7576\u7a0b\u5ea6\u7684\u4e2d\u7acb\u6027\uff0c\u6703\u4f9d\u64da\u5177\u9ad4\u8b70\u984c\u505a\u51fa\u5224\u65b7\u3002\",\n            color: \"#60a5fa\",\n            analysis: \"\u60a8\u5c55\u73fe\u4e86\u52d9\u5be6\u7684\u653f\u6cbb\u614b\u5ea6\uff0c\u96d6\u7136\u7565\u504f\u85cd\u71df\u4f46\u4e0d\u6703\u76f2\u76ee\u652f\u6301\uff0c\u66f4\u6ce8\u91cd\u653f\u7b56\u7684\u5be6\u969b\u6548\u679c\u3002\"\n        },\n        \"\u52d9\u5be6\u4e2d\u7acb\": {\n            range: [-2, 2],\n            description: \"\u60a8\u4fdd\u6301\u653f\u6cbb\u4e2d\u7acb\uff0c\u4e0d\u7279\u5225\u504f\u5411\u4efb\u4f55\u9663\u71df\uff0c\u66f4\u91cd\u8996\u653f\u7b56\u5167\u5bb9\u548c\u57f7\u884c\u6548\u679c\uff0c\u5c55\u73fe\u7406\u6027\u52d9\u5be6\u7684\u653f\u6cbb\u614b\u5ea6\u3002\",\n            color: \"#6b7280\",\n            analysis: \"\u60a8\u5177\u6709\u7368\u7acb\u601d\u8003\u7684\u80fd\u529b\uff0c\u4e0d\u6703\u56e0\u70ba\u653f\u9ee8\u7acb\u5834\u800c\u5f71\u97ff\u5224\u65b7\uff0c\u66f4\u95dc\u6ce8\u653f\u7b56\u5c0d\u6c11\u773e\u751f\u6d3b\u7684\u5be6\u969b\u5f71\u97ff\u3002\"\n        },\n        \"\u4e2d\u7acb\u504f\u7da0\": {\n            range: [3, 7],\n            description: \"\u60a8\u7684\u653f\u6cbb\u7acb\u5834\u7565\u5fae\u504f\u5411\u7da0\u71df\uff0c\u652f\u6301\u53f0\u7063\u4e3b\u9ad4\u6027\uff0c\u4f46\u4ecd\u4fdd\u6301\u7406\u6027\u4e2d\u7acb\u7684\u614b\u5ea6\u3002\",\n            color: \"#34d399\",\n            analysis: \"\u60a8\u652f\u6301\u53f0\u7063\u7684\u4e3b\u9ad4\u767c\u5c55\uff0c\u540c\u6642\u4fdd\u6301\u958b\u653e\u7684\u5fc3\u614b\uff0c\u4e0d\u6703\u56e0\u70ba\u653f\u6cbb\u7acb\u5834\u800c\u6392\u65a5\u4e0d\u540c\u89c0\u9ede\u3002\"\n        },\n        \"\u6cdb\u7da0\u50be\u5411\u8005\": {\n            range: [8, 12],\n            description: \"\u60a8\u50be\u5411\u652f\u6301\u7da0\u71df\u653f\u9ee8\uff0c\u8a8d\u540c\u53f0\u7063\u4e3b\u9ad4\u610f\u8b58\uff0c\u652f\u6301\u6c11\u4e3b\u9032\u6b65\u50f9\u503c\uff0c\u50be\u5411\u53f0\u7063\u512a\u5148\u7684\u653f\u7b56\u65b9\u5411\u3002\",\n            color: \"#10b981\",\n            analysis: \"\u60a8\u5177\u6709\u5f37\u70c8\u7684\u53f0\u7063\u8a8d\u540c\uff0c\u652f\u6301\u6c11\u4e3b\u81ea\u7531\u50f9\u503c\uff0c\u5728\u793e\u6703\u8b70\u984c\u4e0a\u8f03\u70ba\u9032\u6b65\uff0c\u50be\u5411\u652f\u6301\u6539\u9769\u653f\u7b56\u3002\"\n        },\n        \"\u6df1\u7da0\u652f\u6301\u8005\": {\n            range: [13, 20],\n            description: \"\u60a8\u5177\u6709\u5f37\u70c8\u7684\u53f0\u7063\u8a8d\u540c\uff0c\u5805\u6c7a\u652f\u6301\u53f0\u7063\u7368\u7acb\uff0c\u8a8d\u540c\u9032\u6b65\u50f9\u503c\uff0c\u662f\u6c11\u9032\u9ee8\u53ca\u53f0\u7368\u7406\u5ff5\u7684\u5805\u5b9a\u652f\u6301\u8005\u3002\",\n            color: \"#059669\",\n            analysis: \"\u60a8\u7684\u653f\u6cbb\u7acb\u5834\u9ad4\u73fe\u4e86\u5c0d\u53f0\u7063\u4e3b\u6b0a\u7684\u5805\u6301\uff0c\u4ee5\u53ca\u5c0d\u6c11\u4e3b\u81ea\u7531\u50f9\u503c\u7684\u8ffd\u6c42\u3002\u60a8\u652f\u6301\u53f0\u7063\u5728\u570b\u969b\u793e\u6703\u7684\u4e3b\u9ad4\u6027\u767c\u5c55\u3002\"\n        }\n    };\n\n    \/\/ \u61c9\u7528\u72c0\u614b\n    let state = {\n        currentPage: 'intro',\n        currentQuestion: 0,\n        answers: [],\n        totalScore: 0\n    };\n\n    \/\/ DOM \u5143\u7d20\n    const elements = {\n        \/\/ \u9801\u9762\n        introPage: document.getElementById('quiz-intro-page'),\n        testPage: document.getElementById('quiz-test-page'),\n        resultPage: document.getElementById('quiz-result-page'),\n        \n        \/\/ \u6309\u9215\n        startBtn: document.getElementById('taiwan-start-quiz-btn'),\n        prevBtn: document.getElementById('taiwan-prev-btn'),\n        restartBtn: document.getElementById('taiwan-restart-btn'),\n        \n        \/\/ \u6e2c\u9a57\u5143\u7d20\n        currentQuestion: document.getElementById('taiwan-current-question'),\n        totalQuestions: document.getElementById('taiwan-total-questions'),\n        progressFill: document.getElementById('taiwan-progress-fill'),\n        progressContainer: document.getElementById('taiwan-progress-container'),\n        questionText: document.getElementById('taiwan-question-text'),\n        optionsContainer: document.getElementById('taiwan-options-container'),\n        \n        \/\/ \u7d50\u679c\u5143\u7d20\n        resultCategory: document.getElementById('taiwan-result-category'),\n        resultDescription: document.getElementById('taiwan-result-description'),\n        resultChart: document.getElementById('taiwan-result-chart'),\n        detailedAnalysis: document.getElementById('taiwan-detailed-analysis')\n    };\n\n    \/\/ \u5de5\u5177\u51fd\u6578\n    function scrollToTop() {\n        window.scrollTo({\n            top: 0,\n            behavior: 'smooth'\n        });\n    }\n\n    function scrollToElement(element, offset = 100) {\n        if (!element) return;\n        const elementPosition = element.getBoundingClientRect().top + window.pageYOffset;\n        const targetPosition = Math.max(0, elementPosition - offset);\n        \n        window.scrollTo({\n            top: targetPosition,\n            behavior: 'smooth'\n        });\n    }\n\n    \/\/ \u9801\u9762\u7ba1\u7406\n    function showPage(pageName) {\n        \/\/ \u96b1\u85cf\u6240\u6709\u9801\u9762\n        elements.introPage.classList.remove('active');\n        elements.testPage.classList.remove('active');\n        elements.resultPage.classList.remove('active');\n\n        \/\/ \u986f\u793a\u76ee\u6a19\u9801\u9762\n        switch(pageName) {\n            case 'intro':\n                elements.introPage.classList.add('active');\n                break;\n            case 'quiz':\n                elements.testPage.classList.add('active');\n                break;\n            case 'result':\n                elements.resultPage.classList.add('active');\n                break;\n        }\n\n        state.currentPage = pageName;\n        setTimeout(scrollToTop, 100);\n    }\n\n    function initQuiz() {\n        console.log('\u521d\u59cb\u5316\u6d4b\u9a8c');\n        \n        state.currentQuestion = 0;\n        state.answers = [];\n        state.totalScore = 0;\n\n        \/\/ \u6e05\u7406\u53ef\u80fd\u5b58\u5728\u7684\u56fe\u8868\uff08\u4f7f\u7528DOM\u65b9\u5f0f\uff09\n        if (elements.resultChart) {\n            const canvas = elements.resultChart;\n            const ctx = canvas.getContext('2d');\n            ctx.clearRect(0, 0, canvas.width, canvas.height);\n            console.log('\u5df2\u6e05\u7406canvas\u5185\u5bb9');\n        }\n\n        \/\/ \u8bbe\u7f6e\u603b\u9898\u6570\n        if (elements.totalQuestions) {\n            elements.totalQuestions.textContent = QUIZ_DATA.questions.length;\n            console.log('\u603b\u9898\u6570\u5df2\u8bbe\u7f6e:', QUIZ_DATA.questions.length);\n        }\n\n        \/\/ \u663e\u793a\u8fdb\u5ea6\u6761\n        if (elements.progressContainer) {\n            elements.progressContainer.style.display = \n                QUIZ_DATA.questions.length > 1 ? 'block' : 'none';\n        }\n\n        \/\/ \u663e\u793a\u7b2c\u4e00\u9898\n        console.log('\u51c6\u5907\u663e\u793a\u7b2c\u4e00\u9898');\n        showQuestion(0);\n    }\n\n    function showQuestion(questionIndex) {\n        const question = QUIZ_DATA.questions[questionIndex];\n        if (!question) return;\n\n        \/\/ \u66f4\u65b0\u984c\u76ee\n        elements.questionText.textContent = question.text;\n\n        \/\/ \u66f4\u65b0\u9032\u5ea6\n        updateProgress(questionIndex);\n\n        \/\/ \u6e32\u67d3\u9078\u9805\n        renderOptions(question.options, questionIndex);\n\n        \/\/ \u66f4\u65b0\u5c0e\u822a\u6309\u9215\n        updateNavigation(questionIndex);\n\n        \/\/ \u6efe\u52d5\u5230\u554f\u984c\u6a19\u984c\n        setTimeout(() => {\n            scrollToElement(elements.questionText, 100);\n        }, 100);\n    }\n\n    function updateProgress(questionIndex) {\n        const current = questionIndex + 1;\n        const total = QUIZ_DATA.questions.length;\n        const percentage = (current \/ total) * 100;\n\n        elements.currentQuestion.textContent = current;\n        elements.progressFill.style.width = percentage + '%';\n    }\n\n    function renderOptions(options, questionIndex) {\n        elements.optionsContainer.innerHTML = '';\n\n        options.forEach((option, optionIndex) => {\n            const button = document.createElement('button');\n            button.className = 'taiwan-option-btn';\n            button.textContent = option.text;\n            button.setAttribute('data-question', questionIndex);\n            button.setAttribute('data-option', optionIndex);\n            button.setAttribute('data-score', option.score);\n\n            \/\/ \u5982\u679c\u5df2\u7d93\u6709\u7b54\u6848\uff0c\u6a19\u8a18\u70ba\u9078\u4e2d\n            if (state.answers[questionIndex] === optionIndex) {\n                button.classList.add('selected');\n            }\n\n            \/\/ \u6dfb\u52a0\u9ede\u64ca\u4e8b\u4ef6\n            button.addEventListener('click', function() {\n                selectOption(questionIndex, optionIndex, option.score);\n            });\n\n            elements.optionsContainer.appendChild(button);\n        });\n    }\n\n    function updateNavigation(questionIndex) {\n        elements.prevBtn.style.display = questionIndex > 0 ? 'block' : 'none';\n    }\n\n    function selectOption(questionIndex, optionIndex, score) {\n        \/\/ \u8a18\u9304\u7b54\u6848\n        state.answers[questionIndex] = optionIndex;\n\n        \/\/ \u66f4\u65b0\u9078\u9805\u6a23\u5f0f\n        const options = elements.optionsContainer.querySelectorAll('.taiwan-option-btn');\n        options.forEach((btn, index) => {\n            btn.classList.toggle('selected', index === optionIndex);\n        });\n\n        \/\/ \u5ef6\u9072\u9032\u5165\u4e0b\u4e00\u984c\u6216\u5b8c\u6210\u6e2c\u9a57\n        setTimeout(() => {\n            if (questionIndex < QUIZ_DATA.questions.length - 1) {\n                state.currentQuestion = questionIndex + 1;\n                showQuestion(state.currentQuestion);\n            } else {\n                completeQuiz();\n            }\n        }, 300);\n    }\n\n    function goToPreviousQuestion() {\n        if (state.currentQuestion > 0) {\n            state.currentQuestion--;\n            showQuestion(state.currentQuestion);\n        }\n    }\n\n    function completeQuiz() {\n        \/\/ \u8a08\u7b97\u7e3d\u5206\n        state.totalScore = 0;\n        state.answers.forEach((answerIndex, questionIndex) => {\n            if (answerIndex !== undefined) {\n                const question = QUIZ_DATA.questions[questionIndex];\n                const selectedOption = question.options[answerIndex];\n                state.totalScore += selectedOption.score;\n            }\n        });\n\n        \/\/ \u986f\u793a\u7d50\u679c\u9801\n        showPage('result');\n        showResult(state.totalScore, state.answers);\n    }\n\n    \/\/ \u7d50\u679c\u7ba1\u7406\n    function showResult(totalScore, answers) {\n        const category = getCategory(totalScore);\n        \n        \/\/ \u986f\u793a\u57fa\u672c\u7d50\u679c\n        displayBasicResult(category, totalScore);\n        \n        \/\/ \u5275\u5efa\u5716\u8868\n        createChart(totalScore, category);\n        \n        \/\/ \u986f\u793a\u8a73\u7d30\u5206\u6790\n        displayDetailedAnalysis(category, answers, totalScore);\n    }\n\n    function getCategory(score) {\n        for (const [categoryName, data] of Object.entries(RESULT_CATEGORIES)) {\n            const [min, max] = data.range;\n            if (score >= min && score <= max) {\n                return { name: categoryName, ...data };\n            }\n        }\n        return { name: \"\u52d9\u5be6\u4e2d\u7acb\", ...RESULT_CATEGORIES[\"\u52d9\u5be6\u4e2d\u7acb\"] };\n    }\n\n    function displayBasicResult(category, totalScore) {\n        elements.resultCategory.textContent = category.name;\n        elements.resultCategory.style.color = category.color;\n        elements.resultDescription.textContent = category.description;\n    }\n\n    function createChart(totalScore, category) {\n        if (!elements.resultChart || !window.Chart) {\n            console.log('Chart.js \u4e0d\u53ef\u7528\u6216\u7ed3\u679c\u56fe\u8868\u5143\u7d20\u4e0d\u5b58\u5728');\n            return;\n        }\n\n        \/\/ \u6e05\u7406canvas - \u91cd\u65b0\u521b\u5efacanvas\u5143\u7d20\u786e\u4fdd\u5b8c\u5168\u6e05\u7406\n        const chartContainer = elements.resultChart.parentNode;\n        const oldCanvas = elements.resultChart;\n        const newCanvas = document.createElement('canvas');\n        newCanvas.id = 'taiwan-result-chart';\n        chartContainer.replaceChild(newCanvas, oldCanvas);\n        \n        \/\/ \u66f4\u65b0\u5143\u7d20\u5f15\u7528\n        elements.resultChart = newCanvas;\n        \n        const ctx = newCanvas.getContext('2d');\n        \n        \/\/ \u5275\u5efa\u653f\u6cbb\u5149\u8b5c\u689d\u5f62\u5716\n        const spectrumData = createSpectrumData(totalScore);\n        console.log('\u521b\u5efa\u65b0\u56fe\u8868\uff0c\u603b\u5206:', totalScore);\n        \n        try {\n            \/\/ \u521b\u5efa\u65b0\u56fe\u8868\u4f46\u4e0d\u9700\u8981\u4fdd\u5b58\u5230\u5168\u5c40\u53d8\u91cf\n            const newChart = new Chart(ctx, {\n                type: 'bar',\n                data: {\n                    labels: spectrumData.labels,\n                    datasets: [{\n                        label: '\u653f\u6cbb\u5149\u8b5c\u4f4d\u7f6e',\n                        data: spectrumData.values,\n                        backgroundColor: spectrumData.colors,\n                        borderColor: spectrumData.borderColors,\n                        borderWidth: 2,\n                        borderRadius: 8,\n                        borderSkipped: false\n                    }]\n                },\n                options: {\n                    responsive: true,\n                    maintainAspectRatio: true,\n                    indexAxis: 'y',\n                    scales: {\n                        x: {\n                            beginAtZero: true,\n                            max: 100,\n                            ticks: {\n                                font: {\n                                    size: 14\n                                },\n                                callback: function(value) {\n                                    return value + '%';\n                                }\n                            },\n                            grid: {\n                                color: '#e5e7eb'\n                            }\n                        },\n                        y: {\n                            ticks: {\n                                font: {\n                                    size: 16\n                                }\n                            },\n                            grid: {\n                                display: false\n                            }\n                        }\n                    },\n                    plugins: {\n                        legend: {\n                            display: false\n                        },\n                        tooltip: {\n                            callbacks: {\n                                label: function(context) {\n                                    const label = context.dataset.label || '';\n                                    const value = Math.round(context.parsed.x);\n                                    return `${label}: ${value}%`;\n                                }\n                            }\n                        }\n                    },\n                    layout: {\n                        padding: {\n                            top: 20,\n                            bottom: 20,\n                            left: 10,\n                            right: 10\n                        }\n                    }\n                }\n            });\n            console.log('\u65b0\u56fe\u8868\u521b\u5efa\u6210\u529f');\n        } catch (error) {\n            console.error('\u521b\u5efa\u56fe\u8868\u65f6\u51fa\u9519:', error);\n        }\n    }\n\n    function createSpectrumData(totalScore) {\n        \/\/ \u8a08\u7b97\u5728\u5149\u8b5c\u4e0a\u7684\u4f4d\u7f6e\u767e\u5206\u6bd4 (\u5f9e-20\u5230+20\u8f49\u63db\u70ba0-100%)\n        const normalizedScore = ((totalScore + 20) \/ 40) * 100;\n        \n        \/\/ \u5b9a\u7fa9\u5149\u8b5c\u5404\u6bb5\n        const spectrum = [\n            { name: '\u6df1\u85cd', range: [0, 17.5], color: '#1e40af', score: 0 },\n            { name: '\u6cdb\u85cd', range: [17.5, 30], color: '#3b82f6', score: 0 },\n            { name: '\u504f\u85cd', range: [30, 42.5], color: '#60a5fa', score: 0 },\n            { name: '\u4e2d\u7acb', range: [42.5, 57.5], color: '#6b7280', score: 0 },\n            { name: '\u504f\u7da0', range: [57.5, 70], color: '#34d399', score: 0 },\n            { name: '\u6cdb\u7da0', range: [70, 82.5], color: '#10b981', score: 0 },\n            { name: '\u6df1\u7da0', range: [82.5, 100], color: '#059669', score: 0 }\n        ];\n\n        \/\/ \u8a08\u7b97\u6bcf\u500b\u6bb5\u7684\u5206\u6578\n        spectrum.forEach(segment => {\n            const [min, max] = segment.range;\n            if (normalizedScore >= min && normalizedScore <= max) {\n                \/\/ \u7528\u6236\u5728\u6b64\u6bb5\u7684\u4f4d\u7f6e\u5f37\u5ea6\n                const segmentPosition = (normalizedScore - min) \/ (max - min);\n                segment.score = 60 + (segmentPosition * 40); \/\/ 60-100%\u7684\u5f37\u5ea6\n            } else if (Math.abs(normalizedScore - (min + max) \/ 2) <= 12.5) {\n                \/\/ \u76f8\u9130\u6bb5\u6709\u8f03\u4f4e\u7684\u5206\u6578\n                const distance = Math.abs(normalizedScore - (min + max) \/ 2);\n                segment.score = Math.max(0, 40 - (distance * 2));\n            }\n        });\n\n        return {\n            labels: spectrum.map(s => s.name),\n            values: spectrum.map(s => s.score),\n            colors: spectrum.map(s => s.color + '80'),\n            borderColors: spectrum.map(s => s.color)\n        };\n    }\n\n    function calculateDimensions(answers) {\n        \/\/ \u6839\u64da\u7b54\u6848\u8a08\u7b97\u5404\u500b\u7dad\u5ea6\u7684\u5206\u6578\n        const dimensions = {\n            '\u570b\u5bb6\u8a8d\u540c': 0,\n            '\u5169\u5cb8\u95dc\u4fc2': 0,\n            '\u6b77\u53f2\u89c0\u9ede': 0,\n            '\u7d93\u6fdf\u653f\u7b56': 0,\n            '\u570b\u969b\u53c3\u8207': 0,\n            '\u793e\u6703\u50f9\u503c': 0\n        };\n\n        const dimensionMapping = [\n            '\u570b\u5bb6\u8a8d\u540c', '\u5169\u5cb8\u95dc\u4fc2', '\u6b77\u53f2\u89c0\u9ede', \n            '\u7d93\u6fdf\u653f\u7b56', '\u570b\u969b\u53c3\u8207', '\u793e\u6703\u50f9\u503c',\n            '\u6587\u5316\u6559\u80b2', '\u5a92\u9ad4\u504f\u597d', '\u5730\u65b9\u653f\u6cbb', '\u6295\u7968\u884c\u70ba'\n        ];\n\n        answers.forEach((answerIndex, questionIndex) => {\n            if (answerIndex !== undefined && questionIndex < dimensionMapping.length) {\n                const question = QUIZ_DATA.questions[questionIndex];\n                const score = question.options[answerIndex].score;\n                const dimension = dimensionMapping[questionIndex];\n                \n                if (dimensions.hasOwnProperty(dimension)) {\n                    \/\/ \u8f49\u63db\u70ba0-100\u7684\u5206\u6578\n                    dimensions[dimension] = Math.max(0, Math.min(100, 50 + (score * 25)));\n                }\n            }\n        });\n\n        return dimensions;\n    }\n\n    function displayDetailedAnalysis(category, answers, totalScore) {\n        const analysisHTML = `\n            <div class=\"taiwan-analysis-section\">\n                <h4>\u91cd\u8981\u63d0\u9192<\/h4>\n                <p>\u653f\u6cbb\u7acb\u5834\u662f\u8907\u96dc\u4e14\u591a\u9762\u5411\u7684\uff0c\u672c\u6e2c\u9a57\u7d50\u679c\u50c5\u4f9b\u53c3\u8003\u3002\u6bcf\u500b\u4eba\u7684\u653f\u6cbb\u89c0\u9ede\u90fd\u6703\u96a8\u8457\u6642\u9593\u3001\u7d93\u6b77\u548c\u5c0d\u8b70\u984c\u7684\u6df1\u5165\u4e86\u89e3\u800c\u6f14\u8b8a\u3002\u91cd\u8981\u7684\u662f\u4fdd\u6301\u958b\u653e\u7684\u5fc3\u614b\uff0c\u5c0a\u91cd\u4e0d\u540c\u7684\u653f\u6cbb\u89c0\u9ede\u3002<\/p>\n            <\/div>\n        `;\n\n        elements.detailedAnalysis.innerHTML = analysisHTML;\n    }\n\n    \/\/ \u4e8b\u4ef6\u8655\u7406\n    function initEvents() {\n        \/\/ \u958b\u59cb\u6e2c\u9a57\u6309\u9215\n        if (elements.startBtn) {\n            elements.startBtn.addEventListener('click', function() {\n                showPage('quiz');\n                initQuiz();\n            });\n        }\n\n        \/\/ \u4e0a\u4e00\u984c\u6309\u9215\n        if (elements.prevBtn) {\n            elements.prevBtn.addEventListener('click', function() {\n                goToPreviousQuestion();\n            });\n        }\n\n        \/\/ \u91cd\u65b0\u6e2c\u9a57\u6309\u9215\n        if (elements.restartBtn) {\n            elements.restartBtn.addEventListener('click', function() {\n                showPage('intro');\n            });\n        }\n    }\n\n    \/\/ \u61c9\u7528\u521d\u59cb\u5316\n    function initApp() {\n        console.log('\u53f0\u7063\u653f\u6cbb\u5149\u8b5c\u6e2c\u9a57\u521d\u59cb\u5316\u4e2d...');\n        \n        \/\/ \u6aa2\u67e5\u6240\u6709\u5fc5\u8981\u5143\u7d20\n        const requiredElements = [\n            'introPage', 'testPage', 'resultPage', 'startBtn'\n        ];\n        \n        for (let elementName of requiredElements) {\n            if (!elements[elementName]) {\n                console.error('\u7f3a\u5c11\u5fc5\u8981\u5143\u7d20:', elementName);\n                return;\n            }\n        }\n\n        \/\/ \u521d\u59cb\u5316\u4e8b\u4ef6\n        initEvents();\n        \n        \/\/ \u986f\u793a\u5f15\u5c0e\u9801\n        showPage('intro');\n        \n        console.log('\u53f0\u7063\u653f\u6cbb\u5149\u8b5c\u6e2c\u9a57\u8f09\u5165\u5b8c\u6210');\n    }\n\n    \/\/ \u78ba\u4fddDOM\u8f09\u5165\u5b8c\u6210\u5f8c\u57f7\u884c\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', initApp);\n    } else {\n        initApp();\n    }\n\n})();\n<\/script>","protected":false},"excerpt":{"rendered":"<p>\u53f0\u7063\u653f\u6cbb\u5149\u8b5c\u50be\u5411\u6aa2\u6e2c \u4f60\u662f\u85cd\u7da0\u54ea\u4e00\u6d3e\u652f\u6301\u8005\uff1f \ud83d\uddf3\ufe0f \u7cbe\u6e96\u6e2c\u91cf \u900f\u904e10\u500b\u7cbe\u5fc3\u8a2d\u8a08\u7684\u554f\u984c\uff0c\u6e96\u78ba\u8a55\u4f30\u60a8\u7684\u653f\u6cbb\u7acb\u5834\u50be [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"narrow-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"disabled","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[160],"tags":[249],"class_list":["post-9041","post","type-post","status-publish","format-standard","hentry","category-attitude-scales","tag-politics"],"_links":{"self":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9041","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/comments?post=9041"}],"version-history":[{"count":5,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9041\/revisions"}],"predecessor-version":[{"id":9974,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/posts\/9041\/revisions\/9974"}],"wp:attachment":[{"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/media?parent=9041"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/categories?post=9041"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/xinliceyan.org\/zh\/wp-json\/wp\/v2\/tags?post=9041"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}