{"id":355,"date":"2024-03-09T09:46:33","date_gmt":"2024-03-09T01:46:33","guid":{"rendered":"https:\/\/iweb20wpa.url.tku.edu.tw\/atgx\/?page_id=355"},"modified":"2026-09-24T11:34:30","modified_gmt":"2026-09-24T03:34:30","slug":"%e9%9b%99%e4%b8%bb%e4%bf%ae","status":"publish","type":"page","link":"\/interacad\/?page_id=355","title":{"rendered":"\u96d9\u4e3b\u4fee"},"content":{"rendered":"<img decoding=\"async\" src=\"\/interacad\/wp-content\/uploads\/2025\/10\/1141020.png\" class=\"img-fluid img-fluid mx-auto d-block\" alt=\"\u4e0a\u50b3\u5716\u7247\">\n\n<h2 style=\"padding-top:var(--wp--preset--spacing--30);padding-bottom:var(--wp--preset--spacing--30); font-style:normal;font-weight:800;\" class=\"has-text-align-center wp-block-post-title has-x-large-font-size\">\u96d9\u4e3b\u4fee<\/h2>\n\n\n<div class=\"wp-block-tkuwpbs5-bs5-container container\" style=\"padding-top:var(--wp--preset--spacing--20);padding-bottom:var(--wp--preset--spacing--20);position:relative\" block_id=\"lti3ckw5pm578pad91s\"><style><\/style>\n<div class=\"wp-block-tkuwpbs5-bs5-row row\">\n<div class=\"wp-block-tkuwpbs5-bs5-column col-md-12 align-self-start\">\n<div class=\"wp-block-tkuwpbs5-bs5-heading\"><style>\n        #lti3dolh8q9rdlmltjh .tku-fkwx-section-title-1st-bar {\n            background: #990000;\n           }\n\n        #lti3dolh8q9rdlmltjh .tku-fkwx-section-title-2nd-bar {\n            background: #990000;\n           }\n        <\/style><div id=\"dv_title\"><div id=\"lti3dolh8q9rdlmltjh\"><div style=\"visibility:visible;animation-delay:0.1s;animation-name:fadeInUp;text-align:center\"><div style=\"display:inline-block\"><div class=\"tku-fkwx-section-title-1st-bar\"><\/div><h6 class=\"tku-fkwx-section-title text-center px-3\" style=\"color:#990000;background-color:white;z-index:1\">\u96d9\u4e3b\u4fee<\/h6><div class=\"tku-fkwx-section-title-2nd-bar\"><\/div><\/div><h2 class=\"mb-2 fw-bold\">\u5927\u5b78\u90e8<\/h2><\/div><\/div><\/div><\/div>\n<\/div>\n<\/div>\n<\/div>\n\n\n\n<div id=\"ug-dual-host\"><\/div>\n<script>\n(function () {\n  \/* ================================================================\n     \u96d9\u4e3b\u4fee\u8cc7\u6599\uff08\u8981\u6539\u5206\u6a5f\u3001\u4fe1\u7bb1\u3001\u7db2\u5740\uff0c\u53ea\u8981\u6539\u9019\u88e1\uff09\n     url \u7559\u7a7a\u5b57\u4e32 \"\" = \u66ab\u7121\u958b\u653e\n     ================================================================ *\/\n  const IMG = '\/interacad\/wp-content\/uploads\/2024\/03\/';\n  const COLLEGES = [\n    { key: 'arts', name: '\u6587\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u6587\u5b78\u9662v1.jpg', depts: [\n      { name: '\u4e2d\u570b\u6587\u5b78\u5b78\u7cfb', url: 'https:\/\/www.tacx.tku.edu.tw\/tacx\/?page_id=1688', tel: 'Ext.2330', mail: 'tacx@oa.tku.edu.tw' },\n      { name: '\u6b77\u53f2\u5b78\u7cfb', url: 'https:\/\/www.history.tku.edu.tw\/history\/?page_id=739&ckl=%E8%BC%94%E7%B3%BB%E3%80%81%E9%9B%99%E4%B8%BB%E4%BF%AE', tel: 'Ext.2328', mail: 'tahx@oa.tku.edu.tw' },\n      { name: '\u8cc7\u8a0a\u8207\u5716\u66f8\u9928\u5b78\u7cfb', url: 'https:\/\/www.dils.tku.edu.tw\/Front\/course-information\/university-department\/universitydepartment\/Page.aspx?id=Iomt%2FIEQZrc=', tel: 'Ext.2335', mail: 'tabx@oa.tku.edu.tw' },\n      { name: '\u5927\u773e\u50b3\u64ad\u5b78\u7cfb', url: '', tel: '', mail: '' },\n      { name: '\u8cc7\u8a0a\u50b3\u64ad\u5b78\u7cfb', url: 'http:\/\/www.ic.tku.edu.tw\/index.php\/admission\/college-admission.html', tel: 'Ext.2266', mail: 'ictkutw@gmail.com' }\n    ]},\n    { key: 'sci', name: '\u7406\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u7406\u5b78\u9662v1.jpg', depts: [\n      { name: '\u61c9\u7528\u6578\u5b78\u8207\u6578\u64da\u79d1\u5b78\u5b78\u7cfb', url: 'https:\/\/www.math.tku.edu.tw\/math\/?page_id=1072', tel: 'Ext.2502', mail: 'tsnx@oa.tku.edu.tw' },\n      { name: '\u7269\u7406\u5b78\u7cfb', url: 'https:\/\/www.phys.tku.edu.tw\/phys\/?page_id=27007', tel: 'Ext.2521', mail: 'phys@mail.tku.edu.tw' },\n      { name: '\u5316\u5b78\u5b78\u7cfb', url: 'https:\/\/www.chemistry.tku.edu.tw\/chemistry\/?page_id=175', tel: 'Ext.2531', mail: 'chem@mail.tku.edu.tw' },\n      { name: '\u5c16\u7aef\u6750\u6599\u79d1\u5b78\u5b78\u58eb\u5b78\u4f4d\u5b78\u7a0b', url: 'https:\/\/www.ams.tku.edu.tw\/ams\/?page_id=29568', tel: 'Ext.3603', mail: 'tsax@oa.tku.edu.tw' }\n    ]},\n    { key: 'eng', name: '\u5de5\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u5de5\u5b78\u9662v1.jpg', depts: [\n      { name: '\u5efa\u7bc9\u5b78\u7cfb', url: '', tel: '', mail: '' },\n      { name: '\u571f\u6728\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.ce.tku.edu.tw\/ce\/?page_id=175', tel: 'Ext.2611', mail: 'tecx@oa.tku.edu.tw' },\n      { name: '\u6c34\u8cc7\u6e90\u53ca\u74b0\u5883\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.wree.tku.edu.tw\/posts\/15\/131', tel: 'Ext.2612', mail: 'tewx@oa.tku.edu.tw' },\n      { name: '\u6a5f\u68b0\u8207\u6a5f\u96fb\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.me.tku.edu.tw\/me\/?page_id=2620', tel: 'Ext.2573', mail: 'tebx@oa.tku.edu.tw' },\n      { name: '\u5316\u5b78\u5de5\u7a0b\u8207\u6750\u6599\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.che.tku.edu.tw\/che\/?page_id=9265', tel: 'Ext.2614', mail: 'tedx@oa.tku.edu.tw' },\n      { name: '\u96fb\u6a5f\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.ee.tku.edu.tw\/admissions\/others\/tkuece-double\/', tel: 'Ext.2615', mail: 'tetx@oa.tku.edu.tw' },\n      { name: '\u8cc7\u8a0a\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.csie.tku.edu.tw\/csie\/?page_id=4038', tel: 'Ext.2616\u3001Ext.2665', mail: 'teix@oa.tku.edu.tw' },\n      { name: '\u822a\u7a7a\u592a\u7a7a\u5de5\u7a0b\u5b78\u7cfb', url: 'https:\/\/www.aero.tku.edu.tw\/aero\/?page_id=764', tel: 'Ext.2617', mail: 'tenx@oa.tku.edu.tw' }\n    ]},\n    { key: 'biz', name: '\u5546\u7ba1\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u5546\u7ba1\u5b78\u9662v1.jpg', depts: [\n      { name: '\u570b\u969b\u4f01\u696d\u5b78\u7cfb', url: 'https:\/\/www.dib.tku.edu.tw\/dib\/?page_id=7661', tel: 'Ext.2567', mail: 'tbfxm@mail.tku.edu.tw' },\n      { name: '\u8ca1\u52d9\u91d1\u878d\u5b78\u7cfb', url: 'https:\/\/www.bf.tku.edu.tw\/bf\/?page_id=5395', tel: 'Ext.2592', mail: 'tlbx@oa.tku.edu.tw' },\n      { name: '\u98a8\u96aa\u7ba1\u7406\u8207\u4fdd\u96aa\u5b78\u7cfb', url: 'https:\/\/www.ins.tku.edu.tw\/ins\/?page_id=8933', tel: 'Ext.2563', mail: '149206@mail.tku.edu.tw' },\n      { name: '\u7d93\u6fdf\u5b78\u7cfb', url: 'https:\/\/www.econ.tku.edu.tw\/econ\/?page_id=1220', tel: 'Ext.2565', mail: 'tlyx@oa.tku.edu.tw' },\n      { name: '\u4f01\u696d\u7ba1\u7406\u5b78\u7cfb', url: 'https:\/\/www.ba.tku.edu.tw\/ba\/?page_id=600&ckl=%E6%97%A5%E9%96%93%E9%83%A8%E5%BF%85%E9%81%B8%E4%BF%AE%E5%AD%B8%E5%88%86%E8%A1%A8', tel: 'Ext.2623', mail: 'tlcx@oa.tku.edu.tw' },\n      { name: '\u6703\u8a08\u5b78\u7cfb', url: 'https:\/\/www.acc.tku.edu.tw\/acc\/?page_id=2322&ckl=%E8%BC%94%E7%B3%BB%E3%80%81%E9%9B%99%E4%B8%BB%E4%BF%AE', tel: 'Ext.2589', mail: 'tlax@oa.tku.edu.tw' },\n      { name: '\u7d71\u8a08\u8207\u8cc7\u6599\u79d1\u5b78\u5b78\u7cfb', url: 'https:\/\/www.stat.tku.edu.tw\/stat\/?page_id=13674', tel: 'Ext.2632', mail: 'ulsx@oa.tku.edu.tw' },\n      { name: '\u8cc7\u8a0a\u7ba1\u7406\u5b78\u7cfb', url: 'https:\/\/www.im.tku.edu.tw\/%e6%96%b0%e7%94%9f%e5%85%a5%e5%ad%b8\/', tel: 'Ext.2645', mail: 'tlmx@oa.tku.edu.tw' },\n      { name: '\u904b\u8f38\u7ba1\u7406\u5b78\u7cfb', url: 'https:\/\/www.tm.tku.edu.tw\/tm\/?page_id=4454', tel: 'Ext.2597', mail: 'tltx@oa.tku.edu.tw' },\n      { name: '\u516c\u5171\u884c\u653f\u66a8\u6cd5\u5f8b\u5b78\u7cfb', url: 'https:\/\/www.pa.tku.edu.tw\/pa\/?page_id=4291', tel: 'Ext.2554', mail: 'ulpx@oa.tku.edu.tw' },\n      { name: '\u7ba1\u7406\u79d1\u5b78\u5b78\u7cfb', url: 'https:\/\/msdm.ms.tku.edu.tw\/ms\/?page_id=3127&ckl=%E5%BD%88%E6%80%A7%E5%AD%B8%E5%88%B6', tel: 'Ext.2185', mail: 'tlgx@oa.tku.edu.tw' }\n    ]},\n    { key: 'lang', name: '\u5916\u570b\u8a9e\u6587\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u5916\u570b\u8a9e\u6587\u5b78\u9662v1.jpg', depts: [\n      { name: '\u82f1\u6587\u5b78\u7cfb', url: 'https:\/\/www.tflx.tku.edu.tw\/tflx\/?page_id=7131', tel: 'Ext.2343', mail: 'tflx@oa.tku.edu.tw' },\n      { name: '\u6b50\u6d32\u8a9e\u6587\u5b78\u7cfb\u897f\u6587\u7d44', url: 'https:\/\/www.tfsx.tku.edu.tw\/tfsx\/?page_id=8466', tel: 'Ext.2336', mail: 'tfsx_oa@o365.tku.edu.tw' },\n      { name: '\u6b50\u6d32\u8a9e\u6587\u5b78\u7cfb\u6cd5\u6587\u7d44', url: 'https:\/\/www.tffx.tku.edu.tw\/tffx\/?page_id=16253', tel: 'Ext.2338\u3001Ext.2339', mail: 'tffx@oa.tku.edu.tw' },\n      { name: '\u6b50\u6d32\u8a9e\u6587\u5b78\u7cfb\u5fb7\u6587\u7d44', url: 'https:\/\/www.tfgx.tku.edu.tw\/tfgx\/?page_id=6360', tel: 'Ext.2333', mail: 'ger@mail.tku.edu.tw' },\n      { name: '\u65e5\u672c\u8a9e\u6587\u5b78\u7cfb', url: 'https:\/\/www.tfjx.tku.edu.tw\/tfjx\/?tkuisotope=%e6%97%a5%e6%96%87%e7%b3%bb%e9%9b%99%e4%b8%bb%e4%bf%ae%e4%bf%ae%e7%bf%92%e8%be%a6%e6%b3%95%e5%8f%8a%e7%9b%b8%e9%97%9c%e8%a6%8f%e5%ae%9a', tel: 'Ext.2340', mail: 'tfjx@oa.tku.edu.tw' },\n      { name: '\u6b50\u6d32\u8a9e\u6587\u5b78\u7cfb\u4fc4\u6587\u7d44', url: 'https:\/\/www.tfux.tku.edu.tw\/tfux\/?page_id=23756', tel: 'Ext.2711', mail: 'tfux_oa@o365.tku.edu.tw' }\n    ]},\n    { key: 'intl', name: '\u570b\u969b\u4e8b\u52d9\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u570b\u969b\u4e8b\u52d9\u5b78\u9662v1.jpg', depts: [\n      { name: '\u5916\u4ea4\u8207\u570b\u969b\u95dc\u4fc2\u5b78\u7cfb', url: 'http:\/\/www.tidx.tku.edu.tw\/Front\/Admission\/minordoublemajor\/Doublemajor\/Page.aspx?id=qDQHXVtqgVE=', tel: 'Ext.3615', mail: 'trdx@oa.tku.edu.tw' },\n      { name: '\u570b\u969b\u89c0\u5149\u7ba1\u7406\u5b78\u7cfb', url: 'https:\/\/www.itm.tku.edu.tw\/Front\/CourseInformation\/DoubleMajor\/Page.aspx?id=N5VrilZem%2Bw=', tel: 'Ext.3661', mail: 'trbx@oa.tku.edu.tw' },\n      { name: '\u5168\u7403\u653f\u6cbb\u7d93\u6fdf\u5b78\u7cfb', url: 'https:\/\/www.gpe.tku.edu.tw\/Front\/Course-Introduction\/All-English-Bachelors-Degree-Class-3\/All-English-Bachelors-Degree-Class-3-1\/Page.aspx?id=0NysoCiTXds=', tel: 'Ext.3663', mail: 'trjx@oa.tku.edu.tw' }\n    ]},\n    { key: 'edu', name: '\u6559\u80b2\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-\u6559\u80b2\u5b78\u9662v1.jpg', depts: [\n      { name: '\u6559\u80b2\u79d1\u6280\u5b78\u7cfb', url: 'https:\/\/www.et.tku.edu.tw\/et\/?page_id=1136', tel: 'Ext.2535', mail: 'tdtx@oa.tku.edu.tw' },\n      { name: '\u6559\u80b2\u8207\u672a\u4f86\u8a2d\u8a08\u5b78\u7cfb', url: 'http:\/\/www.edfd.tku.edu.tw\/Front\/256\/26\/Page.aspx?id=qDQHXVtqgVE=', tel: 'Ext.3001', mail: 'tdjx@oa.tku.edu.tw' }\n    ]},\n    { key: 'ai', name: 'AI\u5275\u667a\u5b78\u9662', img: IMG + '\u8de8\u9818\u57df\u7db2\u7ad9-\u5206\u9801-AI\u5275\u667a\u5b78\u9662v1.jpg', depts: [\n      { name: '\u4eba\u5de5\u667a\u6167\u5b78\u7cfb', url: 'http:\/\/www.ai.tku.edu.tw\/Front\/programinfo\/universitydepartment\/Minordepartmentanddoublemajor\/Archive.aspx?id=UDOf%2B%2FVxP3k=', tel: 'Ext.3659', mail: 'tkfx@oa.tku.edu.tw' }\n    ]}\n  ];\n  \/* ================================ \u8cc7\u6599\u5230\u6b64 ================================ *\/\n\n  const host = document.getElementById('ug-dual-host');\n  const shadow = host.attachShadow({ mode: 'open' });\n\n  const esc = s => String(s).replace(\/[&<>\"']\/g, c => ({ '&': '&amp;', '<': '&lt;', '>': '&gt;', '\"': '&quot;', \"'\": '&#39;' }[c]));\n\n  shadow.innerHTML = `\n    <style>\n      :host { all: initial; display: block; }\n      * { box-sizing: border-box; }\n\n      .wrap {\n        max-width: 1200px;\n        margin: 0 auto;\n        padding: 8px 20px 24px;\n        font-family: \"Noto Sans TC\", \"PingFang TC\", \"Microsoft JhengHei\", sans-serif;\n        color: #2b2b2b;\n      }\n\n      .hint {\n        text-align: center;\n        color: #666;\n        font-size: 14px;\n        margin: 0 0 20px;\n      }\n\n      .grid {\n        display: grid;\n        grid-template-columns: repeat(4, 1fr);\n        gap: 24px;\n      }\n\n      \/* \u5b78\u9662\u5361\u7247 *\/\n      .card {\n        position: relative;\n        display: block;\n        width: 100%;\n        padding: 0;\n        border: 0;\n        border-radius: 22px;\n        overflow: hidden;\n        cursor: pointer;\n        background: transparent;\n        font: inherit;\n        transition: transform .2s ease, box-shadow .2s ease;\n      }\n      .card img {\n        display: block;\n        width: 100%;\n        height: auto;\n        transition: filter .2s ease;\n      }\n      .card:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(0,0,0,.12); }\n      .card:focus-visible { outline: 3px solid #990000; outline-offset: 3px; }\n      .card.active { box-shadow: 0 0 0 4px #990000; }\n      .grid.has-active .card:not(.active) img { filter: grayscale(.6) opacity(.75); }\n      .card .state {\n        position: absolute;\n        right: 12px;\n        top: 12px;\n        width: 30px;\n        height: 30px;\n        border-radius: 50%;\n        background: rgba(255,255,255,.92);\n        color: #990000;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        font-size: 14px;\n        box-shadow: 0 1px 4px rgba(0,0,0,.15);\n        transition: transform .25s ease;\n      }\n      .card.active .state { transform: rotate(180deg); }\n\n      \/* \u5c55\u958b\u9762\u677f *\/\n      .panel {\n        grid-column: 1 \/ -1;\n        animation: drop .28s ease;\n      }\n      @keyframes drop {\n        from { opacity: 0; transform: translateY(-8px); }\n        to   { opacity: 1; transform: translateY(0); }\n      }\n      .panel-head {\n        text-align: center;\n        margin: 8px 0 14px;\n      }\n      .panel-sub {\n        display: inline-flex;\n        align-items: center;\n        gap: 10px;\n        color: #990000;\n        font-size: 14px;\n      }\n      .panel-sub::before, .panel-sub::after {\n        content: \"\";\n        width: 44px;\n        height: 5px;\n        border-top: 2px solid #990000;\n        border-bottom: 2px solid #990000;\n      }\n      .panel-title {\n        margin: 4px 0 0;\n        font-size: 26px;\n        font-weight: 800;\n      }\n\n      table {\n        width: 100%;\n        border-collapse: collapse;\n        font-size: 15px;\n        text-align: center;\n      }\n      thead th {\n        background: #ffd966;\n        font-weight: 700;\n        padding: 10px 8px;\n        border-top: 1px solid #999;\n        border-bottom: 1px solid #999;\n      }\n      tbody td {\n        padding: 10px 8px;\n        border-bottom: 1px solid #999;\n      }\n      tbody tr:nth-child(even) td { background: #fff2cc; }\n      td.college, td.dept { font-weight: 700; }\n      a.link { color: #8b5e3c; text-decoration: none; }\n      a.link:hover { text-decoration: underline; }\n      .closed { color: #666; }\n\n      .close-row { text-align: center; margin-top: 14px; }\n      .close-btn {\n        font: inherit;\n        font-size: 14px;\n        color: #990000;\n        background: transparent;\n        border: 1px solid #990000;\n        border-radius: 999px;\n        padding: 5px 18px;\n        cursor: pointer;\n      }\n      .close-btn:hover { background: #990000; color: #fff; }\n\n      \/* \u5e73\u677f *\/\n      @media (max-width: 991px) {\n        .grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }\n      }\n\n      \/* \u624b\u6a5f\uff1a\u8868\u683c\u6539\u5361\u7247 *\/\n      @media (max-width: 640px) {\n        .wrap { padding: 8px 16px 20px; }\n        .grid { gap: 12px; }\n        .card { border-radius: 14px; }\n        .card .state { width: 24px; height: 24px; font-size: 11px; right: 8px; top: 8px; }\n        .panel-title { font-size: 22px; }\n\n        table, thead, tbody, tr, td { display: block; }\n        thead { display: none; }\n        tbody tr {\n          border: 1px solid #e6d9b8;\n          border-left: 4px solid #990000;\n          border-radius: 8px;\n          padding: 12px 14px;\n          margin-bottom: 10px;\n          text-align: left;\n          background: #fff;\n        }\n        tbody tr:nth-child(even) td { background: transparent; }\n        tbody td { border: 0; padding: 3px 0; display: flex; gap: 8px; }\n        td.college { display: none; }\n        td.dept { font-size: 16px; padding-bottom: 6px; }\n        td[data-label]::before {\n          content: attr(data-label);\n          flex: 0 0 64px;\n          color: #888;\n          font-weight: 400;\n        }\n        td.dept::before { content: none; }\n        td { word-break: break-all; }\n      }\n    <\/style>\n\n    <div class=\"wrap\">\n      <p class=\"hint\">\u9ede\u9078\u5b78\u9662\u5373\u53ef\u67e5\u770b\u5404\u5b78\u7cfb\u96d9\u4e3b\u4fee\u8cc7\u8a0a<\/p>\n      <div class=\"grid\" id=\"grid\"><\/div>\n    <\/div>\n  `;\n\n  const grid = shadow.getElementById('grid');\n  let activeKey = null;\n  let panel = null;\n\n  COLLEGES.forEach(c => {\n    const btn = document.createElement('button');\n    btn.type = 'button';\n    btn.className = 'card';\n    btn.dataset.key = c.key;\n    btn.setAttribute('aria-expanded', 'false');\n    btn.setAttribute('aria-controls', 'dual-panel');\n    btn.innerHTML = `<img decoding=\"async\" src=\"${esc(c.img)}\" alt=\"${esc(c.name)}\"><span class=\"state\" aria-hidden=\"true\">\u25bc<\/span>`;\n    btn.addEventListener('click', () => toggle(c.key));\n    grid.appendChild(btn);\n  });\n\n  function buildPanel(c) {\n    const rows = c.depts.map(d => {\n      const open = !!d.url;\n      return `<tr>\n        <td class=\"college\">${esc(c.name)}<\/td>\n        <td class=\"dept\">${esc(d.name)}<\/td>\n        <td data-label=\"\u61c9\u4fee\u79d1\u76ee\">${open\n          ? `<a class=\"link\" href=\"${esc(d.url)}\" target=\"_blank\" rel=\"noopener\">${esc(d.name)}\u96d9\u4e3b\u4fee\u8cc7\u8a0a<\/a>`\n          : '<span class=\"closed\">\u66ab\u7121\u958b\u653e<\/span>'}<\/td>\n        <td data-label=\"\u806f\u7d61\u96fb\u8a71\">${open && d.tel ? esc(d.tel) : '\u2013'}<\/td>\n        <td data-label=\"Email\">${open && d.mail\n          ? `<a class=\"link\" href=\"mailto:${esc(d.mail)}\">${esc(d.mail)}<\/a>`\n          : '\u2013'}<\/td>\n      <\/tr>`;\n    }).join('');\n\n    const el = document.createElement('div');\n    el.className = 'panel';\n    el.id = 'dual-panel';\n    el.setAttribute('role', 'region');\n    el.setAttribute('aria-label', c.name + '\u96d9\u4e3b\u4fee\u7e3d\u89bd');\n    el.innerHTML = `\n      <div class=\"panel-head\">\n        <div class=\"panel-sub\">${esc(c.name)}<\/div>\n        <h3 class=\"panel-title\">\u96d9\u4e3b\u4fee\u7e3d\u89bd<\/h3>\n      <\/div>\n      <table>\n        <thead><tr>\n          <th>\u5b78\u9662<\/th><th>\u5b78\u7cfb<\/th><th>\u96d9\u4e3b\u4fee\u300c\u5c08\u696d(\u9580)\u5fc5\u4fee\u79d1\u76ee\u8868\u300d\u9801\u9762\u7db2\u5740<\/th><th>\u5b78\u7cfb\u806f\u7d61\u96fb\u8a71<\/th><th>\u5b78\u7cfb\u806f\u7d61Email<\/th>\n        <\/tr><\/thead>\n        <tbody>${rows}<\/tbody>\n      <\/table>\n      <div class=\"close-row\"><button type=\"button\" class=\"close-btn\">\u6536\u5408 \u25b2<\/button><\/div>\n    `;\n    el.querySelector('.close-btn').addEventListener('click', () => toggle(activeKey));\n    return el;\n  }\n\n  function colCount() {\n    return getComputedStyle(grid).gridTemplateColumns.split(' ').filter(Boolean).length || 1;\n  }\n\n  \/* \u628a\u9762\u677f\u63d2\u5728\u300c\u88ab\u9ede\u90a3\u5f35\u5361\u7247\u6240\u5728\u5217\u300d\u7684\u6700\u5f8c\u4e00\u5f35\u5f8c\u9762 *\/\n  function placePanel() {\n    if (!panel || !activeKey) return;\n    const cards = [...grid.querySelectorAll('.card')];\n    const idx = cards.findIndex(b => b.dataset.key === activeKey);\n    const cols = colCount();\n    const lastInRow = Math.min(cards.length - 1, Math.floor(idx \/ cols) * cols + cols - 1);\n    cards[lastInRow].after(panel);\n  }\n\n  function toggle(key) {\n    const cards = grid.querySelectorAll('.card');\n    if (panel) { panel.remove(); panel = null; }\n\n    if (activeKey === key) {\n      activeKey = null;\n    } else {\n      activeKey = key;\n      const c = COLLEGES.find(x => x.key === key);\n      panel = buildPanel(c);\n      placePanel();\n    }\n\n    cards.forEach(b => {\n      const on = b.dataset.key === activeKey;\n      b.classList.toggle('active', on);\n      b.setAttribute('aria-expanded', on ? 'true' : 'false');\n    });\n    grid.classList.toggle('has-active', !!activeKey);\n\n    if (panel) {\n      const top = panel.getBoundingClientRect().top + window.scrollY - 120;\n      if (panel.getBoundingClientRect().top > window.innerHeight * 0.7) {\n        window.scrollTo({ top, behavior: 'smooth' });\n      }\n    }\n  }\n\n  let lastCols = colCount();\n  window.addEventListener('resize', () => {\n    const n = colCount();\n    if (n !== lastCols) { lastCols = n; placePanel(); }\n  });\n\n  \/* \u7db2\u5740\u5e36 #dual-arts \u9019\u985e\u9328\u9ede\u6642\u81ea\u52d5\u5c55\u958b\uff08\u820a\u5b50\u9801\u9762\u8f49\u5740\u53ef\u7528\uff09 *\/\n  const m = (location.hash || '').match(\/^#dual-(\\w+)$\/);\n  if (m && COLLEGES.some(c => c.key === m[1])) {\n    toggle(m[1]);\n    setTimeout(() => host.scrollIntoView({ behavior: 'smooth', block: 'start' }), 300);\n  }\n})();\n<\/script>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":9,"featured_media":0,"parent":87,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"acf":[],"_links":{"self":[{"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/pages\/355"}],"collection":[{"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"\/interacad\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=355"}],"version-history":[{"count":36,"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/pages\/355\/revisions"}],"predecessor-version":[{"id":8213,"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/pages\/355\/revisions\/8213"}],"up":[{"embeddable":true,"href":"\/interacad\/index.php?rest_route=\/wp\/v2\/pages\/87"}],"wp:attachment":[{"href":"\/interacad\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=355"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}