您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
动态注入iframe样式
// ==UserScript== // @name boss直聘-跨域优化版 // @namespace http://tampermonkey.net/ // @version 2025.05.0402 // @description 动态注入iframe样式 // @author You // @match https://www.zhipin.com/* // @grant none // @run-at document-end // @license MIT // ==/UserScript== (function() { 'use strict'; // Constants const TARGET_PATH = '/web/chat/geek/manage'; const PATH_REGEX = /\/web\/chat\/geek\/manage(\/|$)/; const STYLES = `#container { max-width:none !important; } .plain-text {white-space:normal !important;} .university-info { } .university-info .rank { color: #1890ff; font-weight: bold; display: block; } .university-info .rank.no-match { color: #ff4d4f; } .university-info .tags { color: #52c41a; display: block; } .university-info .tags.no-match { color: #ff4d4f; } .university-info .tags span { }`; // 大学排名数据 const UNIVERSITY_RANKINGS = { "清华大学": { "rank": "1", "tags": [ "双一流", "985", "211" ] }, "北京大学": { "rank": "2", "tags": [ "双一流", "985", "211" ] }, "浙江大学": { "rank": "3", "tags": [ "双一流", "985", "211" ] }, "上海交通大学": { "rank": "4", "tags": [ "双一流", "985", "211" ] }, "复旦大学": { "rank": "5", "tags": [ "双一流", "985", "211" ] }, "南京大学": { "rank": "6", "tags": [ "双一流", "985", "211" ] }, "中国科学技术大学": { "rank": "7", "tags": [ "双一流", "985", "211" ] }, "武汉大学": { "rank": "8", "tags": [ "双一流", "985", "211" ] }, "华中科技大学": { "rank": "9", "tags": [ "双一流", "985", "211" ] }, "西安交通大学": { "rank": "10", "tags": [ "双一流", "985", "211" ] }, "北京航空航天大学": { "rank": "11", "tags": [ "双一流", "985", "211" ] }, "中山大学": { "rank": "12", "tags": [ "双一流", "985", "211" ] }, "北京理工大学": { "rank": "13", "tags": [ "双一流", "985", "211" ] }, "北京协和医学院": { "rank": "医1", "tags": [ "双一流" ] }, "哈尔滨工业大学": { "rank": "14", "tags": [ "双一流", "985", "211" ] }, "四川大学": { "rank": "15", "tags": [ "双一流", "985", "211" ] }, "东南大学": { "rank": "16", "tags": [ "双一流", "985", "211" ] }, "中国人民大学": { "rank": "17", "tags": [ "双一流", "985", "211" ] }, "同济大学": { "rank": "18", "tags": [ "双一流", "985", "211" ] }, "北京师范大学": { "rank": "19", "tags": [ "双一流", "985", "211" ] }, "天津大学": { "rank": "20", "tags": [ "双一流", "985", "211" ] }, "西北工业大学": { "rank": "21", "tags": [ "双一流", "985", "211" ] }, "山东大学": { "rank": "22", "tags": [ "双一流", "985", "211" ] }, "南开大学": { "rank": "23", "tags": [ "双一流", "985", "211" ] }, "厦门大学": { "rank": "24", "tags": [ "双一流", "985", "211" ] }, "中国农业大学": { "rank": "25", "tags": [ "双一流", "985", "211" ] }, "吉林大学": { "rank": "26", "tags": [ "双一流", "985", "211" ] }, "中南大学": { "rank": "27", "tags": [ "双一流", "985", "211" ] }, "大连理工大学": { "rank": "28", "tags": [ "双一流", "985", "211" ] }, "湖南大学": { "rank": "29", "tags": [ "双一流", "985", "211" ] }, "华东师范大学": { "rank": "30", "tags": [ "双一流", "985", "211" ] }, "华南理工大学": { "rank": "31", "tags": [ "双一流", "985", "211" ] }, "南方科技大学": { "rank": "32", "tags": [ "双一流" ] }, "电子科技大学": { "rank": "33", "tags": [ "双一流", "985", "211" ] }, "重庆大学": { "rank": "34", "tags": [ "双一流", "985", "211" ] }, "北京科技大学": { "rank": "35", "tags": [ "双一流", "211" ] }, "上海财经大学": { "rank": "财1", "tags": [ "双一流", "211" ] }, "首都医科大学": { "rank": "医2" }, "南京航空航天大学": { "rank": "36", "tags": [ "双一流", "211" ] }, "东北大学": { "rank": "37", "tags": [ "双一流", "985", "211" ] }, "南京理工大学": { "rank": "38", "tags": [ "双一流", "211" ] }, "兰州大学": { "rank": "39", "tags": [ "双一流", "985", "211" ] }, "南方医科大学": { "rank": "医3" }, "西安电子科技大学": { "rank": "40", "tags": [ "双一流", "211" ] }, "上海科技大学": { "rank": "41", "tags": [ "双一流" ] }, "北京交通大学": { "rank": "42", "tags": [ "双一流", "211" ] }, "哈尔滨工程大学": { "rank": "43", "tags": [ "双一流", "211" ] }, "华东理工大学": { "rank": "44", "tags": [ "双一流", "211" ] }, "东北师范大学": { "rank": "45", "tags": [ "双一流", "211" ] }, "香港中文大学(深圳)": { "rank": "合作1" }, "中央财经大学": { "rank": "财2", "tags": [ "双一流", "211" ] }, "苏州大学": { "rank": "46", "tags": [ "双一流", "211" ] }, "华中农业大学": { "rank": "47", "tags": [ "双一流", "211" ] }, "武汉理工大学": { "rank": "48", "tags": [ "双一流", "211" ] }, "中国石油大学(北京)": { "rank": "48", "tags": [ "双一流", "211" ] }, "郑州大学": { "rank": "50", "tags": [ "双一流", "211" ] }, "江南大学": { "rank": "51", "tags": [ "双一流", "211" ] }, "西南交通大学": { "rank": "52", "tags": [ "双一流", "211" ] }, "南京医科大学": { "rank": "医4", "tags": [ "双一流" ] }, "南京农业大学": { "rank": "53", "tags": [ "双一流", "211" ] }, "中国地质大学(武汉)": { "rank": "54", "tags": [ "双一流", "211" ] }, "对外经济贸易大学": { "rank": "财3", "tags": [ "双一流", "211" ] }, "暨南大学": { "rank": "55", "tags": [ "双一流", "211" ] }, "华中师范大学": { "rank": "56", "tags": [ "双一流", "211" ] }, "中国海洋大学": { "rank": "56", "tags": [ "双一流", "985", "211" ] }, "中国政法大学": { "rank": "政1", "tags": [ "双一流", "211" ] }, "南京师范大学": { "rank": "58", "tags": [ "双一流", "211" ] }, "中国矿业大学": { "rank": "59", "tags": [ "双一流", "211" ] }, "天津医科大学": { "rank": "医5", "tags": [ "双一流", "211" ] }, "中国医科大学": { "rank": "医6" }, "北京邮电大学": { "rank": "60", "tags": [ "双一流", "211" ] }, "上海大学": { "rank": "61", "tags": [ "双一流", "211" ] }, "北京中医药大学": { "rank": "中医1", "tags": [ "双一流", "211" ] }, "浙江工业大学": { "rank": "62" }, "中南财经政法大学": { "rank": "财4", "tags": [ "双一流", "211" ] }, "北京化工大学": { "rank": "63", "tags": [ "双一流", "211" ] }, "河海大学": { "rank": "64", "tags": [ "双一流", "211" ] }, "陕西师范大学": { "rank": "65", "tags": [ "双一流", "211" ] }, "西南财经大学": { "rank": "财5", "tags": [ "双一流", "211" ] }, "西南大学": { "rank": "66", "tags": [ "双一流", "211" ] }, "中国石油大学(华东)": { "rank": "67", "tags": [ "双一流", "211" ] }, "深圳大学": { "rank": "68" }, "上海中医药大学": { "rank": "中医2", "tags": [ "双一流" ] }, "云南大学": { "rank": "69", "tags": [ "双一流", "211" ] }, "西北大学": { "rank": "70", "tags": [ "双一流", "211" ] }, "西北农林科技大学": { "rank": "71", "tags": [ "双一流", "985", "211" ] }, "北京工业大学": { "rank": "72", "tags": [ "双一流", "211" ] }, "南昌大学": { "rank": "73", "tags": [ "双一流", "211" ] }, "上海纽约大学": { "rank": "合作2" }, "东华大学": { "rank": "74", "tags": [ "双一流", "211" ] }, "中国地质大学(北京)": { "rank": "75", "tags": [ "双一流", "211" ] }, "中国矿业大学(北京)": { "rank": "76", "tags": [ "双一流", "211" ] }, "广州医科大学": { "rank": "医8", "tags": [ "双一流" ] }, "哈尔滨医科大学": { "rank": "医7" }, "宁波诺丁汉大学": { "rank": "合作3" }, "福州大学": { "rank": "77", "tags": [ "双一流", "211" ] }, "宁波大学": { "rank": "78", "tags": [ "双一流" ] }, "合肥工业大学": { "rank": "79", "tags": [ "双一流", "211" ] }, "华南师范大学": { "rank": "80", "tags": [ "双一流", "211" ] }, "温州医科大学": { "rank": "医9" }, "中央民族大学": { "rank": "民1", "tags": [ "双一流", "985", "211" ] }, "南京邮电大学": { "rank": "81", "tags": [ "双一流" ] }, "东北财经大学": { "rank": "财6" }, "江苏大学": { "rank": "82" }, "北京外国语大学": { "rank": "语1", "tags": [ "双一流", "211" ] }, "上海外国语大学": { "rank": "语2", "tags": [ "双一流", "211" ] }, "华北电力大学": { "rank": "83", "tags": [ "双一流", "211" ] }, "中国传媒大学": { "rank": "语3", "tags": [ "双一流", "211" ] }, "长安大学": { "rank": "84", "tags": [ "双一流", "211" ] }, "北京林业大学": { "rank": "85", "tags": [ "双一流", "211" ] }, "贵州大学": { "rank": "86", "tags": [ "双一流", "211" ] }, "重庆医科大学": { "rank": "医11" }, "中国药科大学": { "rank": "医10", "tags": [ "双一流", "211" ] }, "福建师范大学": { "rank": "87" }, "湖南师范大学": { "rank": "88", "tags": [ "双一流", "211" ] }, "广西大学": { "rank": "89", "tags": [ "双一流", "211" ] }, "南京林业大学": { "rank": "90", "tags": [ "双一流" ] }, "扬州大学": { "rank": "91" }, "浙江师范大学": { "rank": "92" }, "海南大学": { "rank": "93", "tags": [ "双一流", "211" ] }, "南京工业大学": { "rank": "94" }, "南京中医药大学": { "rank": "中医3", "tags": [ "双一流" ] }, "南京信息工程大学": { "rank": "95", "tags": [ "双一流" ] }, "广东工业大学": { "rank": "96" }, "杭州电子科技大学": { "rank": "97" }, "外交学院": { "rank": "语4", "tags": [ "双一流" ] }, "安徽大学": { "rank": "98", "tags": [ "双一流", "211" ] }, "首都师范大学": { "rank": "99", "tags": [ "双一流" ] }, "华南农业大学": { "rank": "100", "tags": [ "双一流" ] }, "广州中医药大学": { "rank": "中医4", "tags": [ "双一流" ] }, "山西大学": { "rank": "101", "tags": [ "双一流" ] }, "江西财经大学": { "rank": "财7" }, "浙江工商大学": { "rank": "财8" }, "河南大学": { "rank": "102", "tags": [ "双一流" ] }, "太原理工大学": { "rank": "103", "tags": [ "双一流", "211" ] }, "昆山杜克大学": { "rank": "合作5" }, "西交利物浦大学": { "rank": "合作4" }, "山东师范大学": { "rank": "104" }, "大连医科大学": { "rank": "医12" }, "河北医科大学": { "rank": "医12" }, "广州大学": { "rank": "105" }, "浙江理工大学": { "rank": "106" }, "深圳北理莫斯科大学": { "rank": "合作6" }, "湘潭大学": { "rank": "107", "tags": [ "双一流" ] }, "上海理工大学": { "rank": "108" }, "河北工业大学": { "rank": "109", "tags": [ "双一流", "211" ] }, "大连海事大学": { "rank": "110", "tags": [ "双一流", "211" ] }, "青岛大学": { "rank": "111" }, "燕山大学": { "rank": "112" }, "东北林业大学": { "rank": "113", "tags": [ "双一流", "211" ] }, "杭州师范大学": { "rank": "114" }, "西安建筑科技大学": { "rank": "115" }, "湖北大学": { "rank": "116" }, "福建医科大学": { "rank": "医14" }, "昆明理工大学": { "rank": "117" }, "华东政法大学": { "rank": "政2" }, "首都经济贸易大学": { "rank": "财9" }, "西南政法大学": { "rank": "政3" }, "内蒙古大学": { "rank": "118", "tags": [ "双一流", "211" ] }, "西安理工大学": { "rank": "119" }, "北京语言大学": { "rank": "语5" }, "浙江中医药大学": { "rank": "中医5" }, "武汉科技大学": { "rank": "120" }, "天津中医药大学": { "rank": "中医6", "tags": [ "双一流" ] }, "江西师范大学": { "rank": "121" }, "成都中医药大学": { "rank": "中医7", "tags": [ "双一流" ] }, "东北农业大学": { "rank": "122", "tags": [ "双一流", "211" ] }, "西南石油大学": { "rank": "122", "tags": [ "双一流" ] }, "上海师范大学": { "rank": "124" }, "北京师范大学-香港浸会大学联合国际学院": { "rank": "合作7" }, "福建农林大学": { "rank": "125" }, "温州大学": { "rank": "126" }, "长沙理工大学": { "rank": "127" }, "新疆大学": { "rank": "127", "tags": [ "双一流", "211" ] }, "广东外语外贸大学": { "rank": "语6" }, "南京财经大学": { "rank": "财10" }, "河北大学": { "rank": "129" }, "北京工商大学": { "rank": "财11" }, "山东科技大学": { "rank": "130" }, "辽宁大学": { "rank": "131", "tags": [ "双一流", "211" ] }, "成都理工大学": { "rank": "132", "tags": [ "双一流" ] }, "上海体育大学": { "rank": "体1", "tags": [ "双一流" ] }, "浙江财经大学": { "rank": "财12" }, "山东农业大学": { "rank": "133" }, "宁夏大学": { "rank": "134", "tags": [ "双一流", "211" ] }, "华侨大学": { "rank": "135" }, "陕西科技大学": { "rank": "135" }, "安徽医科大学": { "rank": "医15" }, "山西医科大学": { "rank": "医16" }, "天津工业大学": { "rank": "137", "tags": [ "双一流" ] }, "长春理工大学": { "rank": "138" }, "安徽师范大学": { "rank": "139" }, "中国人民公安大学": { "rank": "政4", "tags": [ "双一流" ] }, "石河子大学": { "rank": "140", "tags": [ "双一流", "211" ] }, "山东财经大学": { "rank": "财13" }, "四川农业大学": { "rank": "141", "tags": [ "双一流", "211" ] }, "天津师范大学": { "rank": "142" }, "南京审计大学": { "rank": "财14" }, "上海海洋大学": { "rank": "143", "tags": [ "双一流" ] }, "江苏科技大学": { "rank": "144" }, "齐鲁工业大学": { "rank": "145" }, "上海对外经贸大学": { "rank": "财15" }, "中国计量大学": { "rank": "146" }, "黑龙江大学": { "rank": "147" }, "广西医科大学": { "rank": "医17" }, "安徽农业大学": { "rank": "148" }, "湖北工业大学": { "rank": "148" }, "中南民族大学": { "rank": "民2" }, "浙江农林大学": { "rank": "150" }, "南通大学": { "rank": "151" }, "温州肯恩大学": { "rank": "合作8" }, "河南农业大学": { "rank": "152" }, "重庆邮电大学": { "rank": "153" }, "常州大学": { "rank": "154" }, "广西师范大学": { "rank": "155" }, "湖南农业大学": { "rank": "156" }, "曲阜师范大学": { "rank": "157" }, "吉林农业大学": { "rank": "158" }, "徐州医科大学": { "rank": "医18" }, "武汉纺织大学": { "rank": "159" }, "武汉工程大学": { "rank": "160" }, "河南师范大学": { "rank": "161" }, "天津科技大学": { "rank": "162" }, "辽宁师范大学": { "rank": "163" }, "山东第一医科大学": { "rank": "医19" }, "江苏师范大学": { "rank": "164" }, "湖南中医药大学": { "rank": "中医8" }, "北京建筑大学": { "rank": "165" }, "汕头大学": { "rank": "166" }, "集美大学": { "rank": "167" }, "青岛科技大学": { "rank": "168" }, "三峡大学": { "rank": "168" }, "延边大学": { "rank": "168", "tags": [ "双一流", "211" ] }, "山东中医药大学": { "rank": "中医9" }, "沈阳药科大学": { "rank": "医20" }, "沈阳农业大学": { "rank": "171" }, "河南科技大学": { "rank": "172" }, "天津财经大学": { "rank": "财16" }, "中北大学": { "rank": "173" }, "济南大学": { "rank": "174" }, "华东交通大学": { "rank": "175" }, "上海海事大学": { "rank": "176" }, "辽宁中医药大学": { "rank": "中医10" }, "南昌航空大学": { "rank": "177" }, "河北师范大学": { "rank": "178" }, "西北师范大学": { "rank": "179" }, "长春中医药大学": { "rank": "中医11" }, "河南中医药大学": { "rank": "中医11" }, "天津理工大学": { "rank": "180" }, "北京体育大学": { "rank": "体2", "tags": [ "双一流", "211" ] }, "宁夏医科大学": { "rank": "医21" }, "西北政法大学": { "rank": "政5" }, "湖南科技大学": { "rank": "181" }, "国际关系学院": { "rank": "182" }, "沈阳航空航天大学": { "rank": "183" }, "河南理工大学": { "rank": "184" }, "长江大学": { "rank": "185" }, "上海电力大学": { "rank": "186" }, "南华大学": { "rank": "187" }, "沈阳工业大学": { "rank": "187" }, "重庆交通大学": { "rank": "189" }, "安徽工业大学": { "rank": "190" }, "江西理工大学": { "rank": "190" }, "西南医科大学": { "rank": "医22" }, "西安科技大学": { "rank": "192" }, "安徽理工大学": { "rank": "193" }, "山东理工大学": { "rank": "194" }, "西藏大学": { "rank": "195", "tags": [ "双一流", "211" ] }, "江西农业大学": { "rank": "196" }, "河北农业大学": { "rank": "197" }, "安徽财经大学": { "rank": "财17" }, "青海大学": { "rank": "198", "tags": [ "双一流", "211" ] }, "兰州理工大学": { "rank": "199" }, "西安邮电大学": { "rank": "200" }, "安徽中医药大学": { "rank": "中医13" }, "新乡医学院": { "rank": "医23" }, "桂林电子科技大学": { "rank": "201" }, "四川师范大学": { "rank": "201" }, "云南师范大学": { "rank": "203" }, "北京第二外国语学院": { "rank": "语7" }, "北京信息科技大学": { "rank": "204" }, "黑龙江中医药大学": { "rank": "中医14" }, "烟台大学": { "rank": "205" }, "昆明医科大学": { "rank": "医24" }, "苏州科技大学": { "rank": "206" }, "中南林业科技大学": { "rank": "207" }, "西南科技大学": { "rank": "208" }, "新疆医科大学": { "rank": "医25" }, "兰州交通大学": { "rank": "209" }, "青岛理工大学": { "rank": "210" }, "滨州医学院": { "rank": "医26" }, "江西中医药大学": { "rank": "中医15" }, "湖州师范学院": { "rank": "211" }, "西南民族大学": { "rank": "民3" }, "西安工业大学": { "rank": "212" }, "上海政法学院": { "rank": "政6" }, "哈尔滨师范大学": { "rank": "213" }, "东华理工大学": { "rank": "214" }, "北方工业大学": { "rank": "215" }, "北京电子科技学院": { "rank": "216" }, "湖北中医药大学": { "rank": "中医16" }, "东北石油大学": { "rank": "217" }, "重庆师范大学": { "rank": "218" }, "山西财经大学": { "rank": "财18" }, "沈阳建筑大学": { "rank": "219" }, "山东第二医科大学": { "rank": "医27" }, "遵义医科大学": { "rank": "医28" }, "内蒙古农业大学": { "rank": "220" }, "内蒙古师范大学": { "rank": "221" }, "大连工业大学": { "rank": "222" }, "广西中医药大学": { "rank": "中医17" }, "石家庄铁道大学": { "rank": "223" }, "河南工业大学": { "rank": "224" }, "湖北医药学院": { "rank": "医29" }, "嘉兴大学": { "rank": "225" }, "海南师范大学": { "rank": "226" }, "山西农业大学": { "rank": "227" }, "青岛农业大学": { "rank": "228" }, "福建中医药大学": { "rank": "中医18" }, "东北电力大学": { "rank": "229" }, "浙江海洋大学": { "rank": "229" }, "内蒙古医科大学": { "rank": "医30" }, "贵州医科大学": { "rank": "医31" }, "浙江科技大学": { "rank": "231" }, "成都大学": { "rank": "232" }, "哈尔滨理工大学": { "rank": "233" }, "上海工程技术大学": { "rank": "234" }, "吉林财经大学": { "rank": "财19" }, "西安石油大学": { "rank": "235" }, "上海应用技术大学": { "rank": "236" }, "重庆工商大学": { "rank": "财21" }, "广东财经大学": { "rank": "财20" }, "西安外国语大学": { "rank": "语8" }, "贵州师范大学": { "rank": "237" }, "河北科技大学": { "rank": "238" }, "佛山大学": { "rank": "239" }, "青海师范大学": { "rank": "240" }, "甘肃农业大学": { "rank": "241" }, "四川外国语大学": { "rank": "语9" }, "东莞理工学院": { "rank": "242" }, "中国民航大学": { "rank": "243" }, "重庆理工大学": { "rank": "244" }, "北京物资学院": { "rank": "财22" }, "首都体育学院": { "rank": "体3" }, "华北水利水电大学": { "rank": "245" }, "中国刑事警察学院": { "rank": "政7" }, "武汉轻工大学": { "rank": "246" }, "河南财经政法大学": { "rank": "财23" }, "鲁东大学": { "rank": "247" }, "大连外国语大学": { "rank": "语10" }, "赣南师范大学": { "rank": "248" }, "海南医科大学": { "rank": "医32" }, "陕西中医药大学": { "rank": "中医19" }, "山东建筑大学": { "rank": "249" }, "江汉大学": { "rank": "250" }, "浙大城市学院": { "rank": "251" }, "河北经贸大学": { "rank": "财24" }, "江苏警官学院": { "rank": "政8" }, "聊城大学": { "rank": "252" }, "广西民族大学": { "rank": "民4" }, "湖南工商大学": { "rank": "财25" }, "沈阳化工大学": { "rank": "253" }, "桂林理工大学": { "rank": "254" }, "成都信息工程大学": { "rank": "255" }, "西安工程大学": { "rank": "256" }, "郑州轻工业大学": { "rank": "256" }, "广东医科大学": { "rank": "医33" }, "上海立信会计金融学院": { "rank": "财26" }, "安徽工程大学": { "rank": "258" }, "西华师范大学": { "rank": "258" }, "锦州医科大学": { "rank": "医34" }, "大连交通大学": { "rank": "260" }, "南京工程学院": { "rank": "261" }, "上海海关学院": { "rank": "262" }, "辽宁石油化工大学": { "rank": "263" }, "沈阳理工大学": { "rank": "264" }, "绍兴文理学院": { "rank": "265" }, "延安大学": { "rank": "266" }, "河北中医药大学": { "rank": "中医20" }, "内蒙古工业大学": { "rank": "267" }, "沈阳大学": { "rank": "267" }, "蚌埠医科大学": { "rank": "医35" }, "大连民族大学": { "rank": "民5" }, "浙江传媒学院": { "rank": "语11" }, "厦门理工学院": { "rank": "269" }, "西华大学": { "rank": "270" }, "长春工业大学": { "rank": "271" }, "天津商业大学": { "rank": "财28" }, "郑州航空工业管理学院": { "rank": "财27" }, "沈阳师范大学": { "rank": "272" }, "贵州中医药大学": { "rank": "中医21" }, "大连大学": { "rank": "273" }, "华北理工大学": { "rank": "273" }, "川北医学院": { "rank": "医36" }, "沈阳医学院": { "rank": "医37" }, "安徽建筑大学": { "rank": "275" }, "广东药科大学": { "rank": "医38" }, "湖北经济学院": { "rank": "财29" }, "湖南工业大学": { "rank": "276" }, "桂林医学院": { "rank": "医39" }, "中国人民警察大学": { "rank": "政9" }, "井冈山大学": { "rank": "277" }, "西藏民族大学": { "rank": "民6" }, "山西师范大学": { "rank": "278" }, "辽宁工程技术大学": { "rank": "279" }, "北京农学院": { "rank": "280" }, "浙大宁波理工学院": { "rank": "281" }, "贵州财经大学": { "rank": "财30" }, "福建理工大学": { "rank": "282" }, "浙江外国语学院": { "rank": "语12" }, "常熟理工学院": { "rank": "283" }, "中原工学院": { "rank": "284" }, "山西中医药大学": { "rank": "中医22" }, "天津外国语大学": { "rank": "语13" }, "浙江警察学院": { "rank": "政11" }, "中国劳动关系学院": { "rank": "政10" }, "合肥大学": { "rank": "285" }, "四川警察学院": { "rank": "政12" }, "重庆科技大学": { "rank": "286" }, "渤海大学": { "rank": "287" }, "云南农业大学": { "rank": "288" }, "台州学院": { "rank": "289" }, "大理大学": { "rank": "290" }, "太原科技大学": { "rank": "291" }, "黑龙江八一农垦大学": { "rank": "292" }, "武汉体育学院": { "rank": "体4" }, "宁波工程学院": { "rank": "293" }, "西藏藏医药大学": { "rank": "中医23" }, "云南中医药大学": { "rank": "中医23" }, "深圳技术大学": { "rank": "294" }, "南京警察学院": { "rank": "政13" }, "西安财经大学": { "rank": "财31" }, "云南财经大学": { "rank": "财31" }, "河北工程大学": { "rank": "295" }, "辽宁科技大学": { "rank": "296" }, "北京联合大学": { "rank": "297" }, "北京石油化工学院": { "rank": "297" }, "北方民族大学": { "rank": "民8" }, "杭州医学院": { "rank": "医40" }, "西北民族大学": { "rank": "民7" }, "新疆农业大学": { "rank": "299" }, "贵州民族大学": { "rank": "民9" }, "皖南医学院": { "rank": "医41" }, "吉首大学": { "rank": "300" }, "辽宁工业大学": { "rank": "300" }, "云南民族大学": { "rank": "民10" }, "北京印刷学院": { "rank": "302" }, "闽南师范大学": { "rank": "303" }, "沈阳体育学院": { "rank": "体5" }, "淮阴工学院": { "rank": "304" }, "承德医学院": { "rank": "医42" }, "闽江学院": { "rank": "305" }, "广东海洋大学": { "rank": "306" }, "哈尔滨商业大学": { "rank": "财33" }, "信阳师范大学": { "rank": "307" }, "河北地质大学": { "rank": "308" }, "北华大学": { "rank": "309" }, "吉林师范大学": { "rank": "310" }, "甘肃中医药大学": { "rank": "中医25" }, "临沂大学": { "rank": "311" }, "淮北师范大学": { "rank": "312" }, "大连海洋大学": { "rank": "313" }, "南宁师范大学": { "rank": "314" }, "盐城工学院": { "rank": "315" }, "吉林建筑大学": { "rank": "316" }, "无锡学院": { "rank": "317" }, "塔里木大学": { "rank": "318" }, "广东技术师范大学": { "rank": "319" }, "长沙学院": { "rank": "320" }, "景德镇陶瓷大学": { "rank": "321" }, "河南科技学院": { "rank": "322" }, "江苏海洋大学": { "rank": "322" }, "青海民族大学": { "rank": "民11" }, "山东工商学院": { "rank": "财34" }, "天津城建大学": { "rank": "324" }, "湖北师范大学": { "rank": "325" }, "贵州师范学院": { "rank": "326" }, "赣南医科大学": { "rank": "医43" }, "上海健康医学院": { "rank": "医43" }, "江西科技师范大学": { "rank": "327" }, "甘肃政法大学": { "rank": "政14" }, "西南林业大学": { "rank": "328" }, "五邑大学": { "rank": "329" }, "济宁医学院": { "rank": "医45" }, "内蒙古科技大学": { "rank": "330" }, "南京晓庄学院": { "rank": "331" }, "长春师范大学": { "rank": "332" }, "长江师范学院": { "rank": "333" }, "重庆文理学院": { "rank": "333" }, "中华女子学院": { "rank": "语14" }, "内蒙古财经大学": { "rank": "财35" }, "新疆师范大学": { "rank": "335" }, "安庆师范大学": { "rank": "336" }, "淮阴师范学院": { "rank": "336" }, "天津体育学院": { "rank": "体6" }, "浙江万里学院": { "rank": "338" }, "江苏理工学院": { "rank": "339" }, "上海电机学院": { "rank": "340" }, "上海第二工业大学": { "rank": "341" }, "四川轻化工大学": { "rank": "342" }, "北京警察学院": { "rank": "政15" }, "常州工学院": { "rank": "343" }, "成都体育学院": { "rank": "体7" }, "上海商学院": { "rank": "财36" }, "湖南理工学院": { "rank": "344" }, "成都医学院": { "rank": "医46" }, "盐城师范学院": { "rank": "345" }, "湖北民族大学": { "rank": "民12" }, "仲恺农业工程学院": { "rank": "346" }, "湖北汽车工业学院": { "rank": "347" }, "广西科技大学": { "rank": "348" }, "黄冈师范学院": { "rank": "348" }, "南昌工程学院": { "rank": "350" }, "中央司法警官学院": { "rank": "政16" }, "榆林学院": { "rank": "351" }, "新疆财经大学": { "rank": "财37" }, "金陵科技学院": { "rank": "352" }, "山东交通学院": { "rank": "352" }, "南京体育学院": { "rank": "体8" }, "湖北第二师范学院": { "rank": "354" }, "广东警官学院": { "rank": "政17" }, "徐州工程学院": { "rank": "355" }, "天津农学院": { "rank": "356" }, "泉州师范学院": { "rank": "357" }, "牡丹江医科大学": { "rank": "医47" }, "湖北文理学院": { "rank": "358" }, "洛阳师范学院": { "rank": "359" }, "天津职业技术师范大学": { "rank": "360" }, "重庆警察学院": { "rank": "政18" }, "齐齐哈尔医学院": { "rank": "医48" }, "右江民族医学院": { "rank": "医49" }, "陕西理工大学": { "rank": "361" }, "湖南第一师范学院": { "rank": "362" }, "广州体育学院": { "rank": "体9" }, "内蒙古民族大学": { "rank": "民13" }, "合肥师范学院": { "rank": "363" }, "广东石油化工学院": { "rank": "364" }, "安徽科技学院": { "rank": "365" }, "绵阳师范学院": { "rank": "365" }, "衢州学院": { "rank": "367" }, "广东金融学院": { "rank": "财38" }, "西安医学院": { "rank": "医50" }, "贵阳学院": { "rank": "368" }, "惠州学院": { "rank": "369" }, "三明学院": { "rank": "370" }, "齐齐哈尔大学": { "rank": "371" }, "河北北方学院": { "rank": "医51" }, "重庆三峡学院": { "rank": "372" }, "河南警察学院": { "rank": "政19" }, "长春工程学院": { "rank": "373" }, "丽水学院": { "rank": "373" }, "衡阳师范学院": { "rank": "375" }, "西藏农牧学院": { "rank": "376" }, "兰州财经大学": { "rank": "财39" }, "内蒙古科技大学包头医学院": { "rank": "医52" }, "厦门医学院": { "rank": "医53" }, "攀枝花学院": { "rank": "377" }, "湘南学院": { "rank": "378" }, "长春大学": { "rank": "379" }, "铜仁学院": { "rank": "379" }, "湖北科技学院": { "rank": "381" }, "洛阳理工学院": { "rank": "381" }, "中国民用航空飞行学院": { "rank": "383" }, "岭南师范学院": { "rank": "384" }, "郑州警察学院": { "rank": "政20" }, "阜阳师范大学": { "rank": "385" }, "佳木斯大学": { "rank": "385" }, "黔南民族师范学院": { "rank": "385" }, "泰山学院": { "rank": "385" }, "山东体育学院": { "rank": "体10" }, "黑龙江科技大学": { "rank": "389" }, "龙岩学院": { "rank": "390" }, "防灾科技学院": { "rank": "391" }, "成都师范学院": { "rank": "392" }, "内江师范学院": { "rank": "393" }, "滁州学院": { "rank": "394" }, "湖北理工学院": { "rank": "395" }, "山东政法学院": { "rank": "政21" }, "周口师范学院": { "rank": "396" }, "河北科技师范学院": { "rank": "397" }, "江苏第二师范学院": { "rank": "397" }, "辽宁警察学院": { "rank": "政22" }, "河北金融学院": { "rank": "财40" }, "山东航空学院": { "rank": "399" }, "怀化学院": { "rank": "400" }, "云南警官学院": { "rank": "政23" }, "沈阳工程学院": { "rank": "401" }, "福建江夏学院": { "rank": "财41" }, "莆田学院": { "rank": "402" }, "湖南城市学院": { "rank": "403" }, "北华航天工业学院": { "rank": "404" }, "韶关学院": { "rank": "405" }, "湖南工程学院": { "rank": "406" }, "曲靖师范学院": { "rank": "407" }, "湖南文理学院": { "rank": "408" }, "浙江水利水电学院": { "rank": "408" }, "潍坊学院": { "rank": "410" }, "宜宾学院": { "rank": "411" }, "德州学院": { "rank": "412" }, "皖西学院": { "rank": "412" }, "南阳师范学院": { "rank": "414" }, "北部湾大学": { "rank": "415" }, "贵州理工学院": { "rank": "416" }, "湖南科技学院": { "rank": "416" }, "枣庄学院": { "rank": "418" }, "福建警察学院": { "rank": "政24" }, "湖南财政经济学院": { "rank": "财43" }, "嘉兴南湖学院": { "rank": "财42" }, "牡丹江师范学院": { "rank": "419" }, "宿迁学院": { "rank": "420" }, "太原师范学院": { "rank": "421" }, "邵阳学院": { "rank": "422" }, "广东第二师范学院": { "rank": "423" }, "玉林师范学院": { "rank": "423" }, "石家庄学院": { "rank": "425" }, "广西财经学院": { "rank": "财44" }, "通化师范学院": { "rank": "426" }, "西安文理学院": { "rank": "426" }, "河南工程学院": { "rank": "428" }, "肇庆学院": { "rank": "428" }, "遵义师范学院": { "rank": "428" }, "吉林警察学院": { "rank": "政25" }, "西安体育学院": { "rank": "体11" }, "哈尔滨体育学院": { "rank": "体12" }, "黑龙江工程学院": { "rank": "431" }, "昆明学院": { "rank": "431" }, "长治医学院": { "rank": "医54" }, "宁德师范学院": { "rank": "433" }, "湖北警官学院": { "rank": "政26" }, "南阳理工学院": { "rank": "434" }, "武夷学院": { "rank": "434" }, "黄淮学院": { "rank": "436" }, "宜春学院": { "rank": "437" }, "吉林化工学院": { "rank": "438" }, "许昌学院": { "rank": "439" }, "吉林医药学院": { "rank": "医55" }, "韩山师范学院": { "rank": "440" }, "上饶师范学院": { "rank": "440" }, "湖南警察学院": { "rank": "政27" }, "宝鸡文理学院": { "rank": "442" }, "重庆第二师范学院": { "rank": "442" }, "乐山师范学院": { "rank": "442" }, "淮南师范学院": { "rank": "445" }, "温州理工学院": { "rank": "445" }, "安阳师范学院": { "rank": "447" }, "西昌学院": { "rank": "448" }, "广州航海学院": { "rank": "449" }, "河南城建学院": { "rank": "450" }, "齐鲁师范学院": { "rank": "451" }, "湖州学院": { "rank": "452" }, "天水师范学院": { "rank": "453" }, "湖南人文科技学院": { "rank": "454" }, "唐山师范学院": { "rank": "454" }, "商丘师范学院": { "rank": "456" }, "成都工业学院": { "rank": "457" }, "六盘水师范学院": { "rank": "457" }, "武汉商学院": { "rank": "财45" }, "巢湖学院": { "rank": "459" }, "贺州学院": { "rank": "460" }, "内蒙古科技大学包头师范学院": { "rank": "460" }, "平顶山学院": { "rank": "460" }, "南昌师范学院": { "rank": "463" }, "渭南师范学院": { "rank": "463" }, "宁夏师范大学": { "rank": "465" }, "吉林体育学院": { "rank": "体13" }, "湖南工学院": { "rank": "466" }, "鞍山师范学院": { "rank": "467" }, "哈尔滨学院": { "rank": "468" }, "湖北工程学院": { "rank": "468" }, "南昌医学院": { "rank": "医56" }, "山东警察学院": { "rank": "政28" }, "上海公安学院": { "rank": "政29" }, "吉林工程技术师范学院": { "rank": "470" }, "廊坊师范学院": { "rank": "471" }, "西安航空学院": { "rank": "472" }, "信阳农林学院": { "rank": "473" }, "山西大同大学": { "rank": "474" }, "黄山学院": { "rank": "475" }, "嘉应学院": { "rank": "475" }, "江西警察学院": { "rank": "政30" }, "福建技术师范学院": { "rank": "477" }, "四川旅游学院": { "rank": "478" }, "咸阳师范学院": { "rank": "478" }, "南京特殊教育师范学院": { "rank": "480" }, "宿州学院": { "rank": "480" }, "凯里学院": { "rank": "482" }, "海南热带海洋学院": { "rank": "483" }, "九江学院": { "rank": "483" }, "山东管理学院": { "rank": "485" }, "玉溪师范学院": { "rank": "486" }, "安阳工学院": { "rank": "487" }, "新乡学院": { "rank": "487" }, "铜陵学院": { "rank": "财46" }, "河西学院": { "rank": "489" }, "太原工业学院": { "rank": "490" }, "山东女子学院": { "rank": "491" }, "伊犁师范大学": { "rank": "491" }, "河北建筑工程学院": { "rank": "493" }, "赤峰学院": { "rank": "494" }, "琼台师范学院": { "rank": "495" }, "陇东学院": { "rank": "496" }, "苏州城市学院": { "rank": "496" }, "贵州警察学院": { "rank": "政31" }, "营口理工学院": { "rank": "498" }, "大庆师范学院": { "rank": "499" }, "华北科技学院": { "rank": "500" }, "阿坝师范学院": { "rank": "500+" }, "安康学院": { "rank": "500+" }, "安顺学院": { "rank": "500+" }, "白城师范学院": { "rank": "500+" }, "百色学院": { "rank": "500+" }, "保定学院": { "rank": "500+" }, "保山学院": { "rank": "500+" }, "蚌埠学院": { "rank": "500+" }, "亳州学院": { "rank": "500+" }, "沧州师范学院": { "rank": "500+" }, "昌吉学院": { "rank": "500+" }, "长沙师范学院": { "rank": "500+" }, "长治学院": { "rank": "500+" }, "池州学院": { "rank": "500+" }, "楚雄师范学院": { "rank": "500+" }, "滇西科技师范学院": { "rank": "500+" }, "滇西应用技术大学": { "rank": "500+" }, "鄂尔多斯应用技术学院": { "rank": "500+" }, "赣东学院": { "rank": "500+" }, "赣南科技学院": { "rank": "500+" }, "甘肃民族师范学院": { "rank": "500+" }, "广西科技师范学院": { "rank": "500+" }, "广西民族师范学院": { "rank": "500+" }, "广西职业师范学院": { "rank": "500+" }, "桂林航天工业学院": { "rank": "500+" }, "贵州工程应用技术学院": { "rank": "500+" }, "邯郸学院": { "rank": "500+" }, "汉江师范学院": { "rank": "500+" }, "河北环境工程学院": { "rank": "500+" }, "河北民族师范学院": { "rank": "500+" }, "河北水利电力学院": { "rank": "500+" }, "河池学院": { "rank": "500+" }, "合肥理工学院": { "rank": "500+" }, "黑河学院": { "rank": "500+" }, "黑龙江工业学院": { "rank": "500+" }, "河南工学院": { "rank": "500+" }, "河南牧业经济学院": { "rank": "500+" }, "衡水学院": { "rank": "500+" }, "河套学院": { "rank": "500+" }, "菏泽学院": { "rank": "500+" }, "红河学院": { "rank": "500+" }, "呼伦贝尔学院": { "rank": "500+" }, "吉林农业科技学院": { "rank": "500+" }, "荆楚理工学院": { "rank": "500+" }, "景德镇学院": { "rank": "500+" }, "集宁师范学院": { "rank": "500+" }, "济宁学院": { "rank": "500+" }, "晋中学院": { "rank": "500+" }, "喀什大学": { "rank": "500+" }, "兰州城市学院": { "rank": "500+" }, "兰州工业学院": { "rank": "500+" }, "兰州文理学院": { "rank": "500+" }, "辽东学院": { "rank": "500+" }, "辽宁科技学院": { "rank": "500+" }, "吕梁学院": { "rank": "500+" }, "萍乡学院": { "rank": "500+" }, "普洱学院": { "rank": "500+" }, "山东农业工程学院": { "rank": "500+" }, "山东青年政治学院": { "rank": "500+" }, "山东石油化工学院": { "rank": "500+" }, "商洛学院": { "rank": "500+" }, "山西电子科技学院": { "rank": "500+" }, "山西工程技术学院": { "rank": "500+" }, "山西工学院": { "rank": "500+" }, "山西科技学院": { "rank": "500+" }, "山西能源学院": { "rank": "500+" }, "陕西学前师范学院": { "rank": "500+" }, "四川民族学院": { "rank": "500+" }, "四川文理学院": { "rank": "500+" }, "绥化学院": { "rank": "500+" }, "太原学院": { "rank": "500+" }, "泰州学院": { "rank": "500+" }, "唐山学院": { "rank": "500+" }, "天津中德应用技术大学": { "rank": "500+" }, "文山学院": { "rank": "500+" }, "梧州学院": { "rank": "500+" }, "邢台学院": { "rank": "500+" }, "兴义民族师范学院": { "rank": "500+" }, "新疆工程学院": { "rank": "500+" }, "新疆理工学院": { "rank": "500+" }, "新疆政法学院": { "rank": "500+" }, "新余学院": { "rank": "500+" }, "忻州师范学院": { "rank": "500+" }, "运城学院": { "rank": "500+" }, "豫章师范学院": { "rank": "500+" }, "张家口学院": { "rank": "500+" }, "昭通学院": { "rank": "500+" }, "郑州工程技术学院": { "rank": "500+" }, "郑州师范学院": { "rank": "500+" }, "福建商学院": { "rank": "财46+" }, "甘肃医学院": { "rank": "医56+" }, "广西警察学院": { "rank": "政31+" }, "桂林旅游学院": { "rank": "财46+" }, "贵州商学院": { "rank": "财46+" }, "哈尔滨金融学院": { "rank": "财46+" }, "河北体育学院": { "rank": "体13+" }, "河南财政金融学院": { "rank": "财46+" }, "河南体育学院": { "rank": "体13+" }, "呼和浩特民族学院": { "rank": "民13+" }, "湖南女子学院": { "rank": "语14+" }, "湖南医药学院": { "rank": "医56+" }, "吉林工商学院": { "rank": "财46+" }, "山西警察学院": { "rank": "政31+" }, "新疆第二医学院": { "rank": "医56+" }, "新疆警察学院": { "rank": "政31+" }, "新疆科技学院": { "rank": "财46+" } }; // State let isInjected = false; let isFilteringRunning = false; // Utility functions const log = (message, type = 'info') => { console.log(`[${type}] ${message}`); }; const createToast = (message, duration = 3000) => { const toast = document.createElement('div'); toast.style.cssText = ` position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: rgba(0, 0, 0, 0.7); color: white; padding: 15px 25px; border-radius: 4px; z-index: 9999; `; toast.textContent = message; document.body.appendChild(toast); setTimeout(() => toast.remove(), duration); }; const createButton = (text, className) => { const button = document.createElement('span'); button.setAttribute('data-v-dbcba0b4', ''); button.className = `${className} reset-btn`; button.textContent = text; return button; }; const getTableRows = (iframe) => { const tbody = iframe.contentDocument.querySelector('.ui-tablepro-tbody'); return tbody ? tbody.querySelectorAll('tr') : null; }; const updateUniversityInfo = (iframe) => { const rows = getTableRows(iframe); if (!rows) return; rows.forEach(row => { const schoolCell = row.querySelector('td:nth-child(5) .plain-text'); if (!schoolCell) return; // 移除旧的 university-info 元素 const existingInfo = schoolCell.querySelector('.university-info'); if (existingInfo) { existingInfo.remove(); } // 获取学校名称,处理可能的格式问题 let school = schoolCell.textContent.trim(); // 移除可能的额外信息(如"本科"、"硕士"等) school = school.split('·')[0].trim(); const universityInfo = UNIVERSITY_RANKINGS[school]; const infoDiv = document.createElement('div'); infoDiv.className = 'university-info'; // 处理排名信息 const rankClass = universityInfo ? '' : 'no-match'; const rankText = universityInfo ? universityInfo.rank : '无'; // 处理标签信息 const tagsClass = universityInfo && universityInfo.tags ? '' : 'no-match'; const tagsText = universityInfo && universityInfo.tags ? universityInfo.tags.map(tag => `<span>${tag}</span>`).join('') : '---'; infoDiv.innerHTML = ` <span class="rank ${rankClass}">排名: ${rankText}</span> <span class="tags ${tagsClass}">标签: ${tagsText}</span> `; schoolCell.appendChild(infoDiv); }); }; const debounce = (func, wait) => { let timeout; return function executedFunction(...args) { const later = () => { clearTimeout(timeout); func(...args); }; clearTimeout(timeout); timeout = setTimeout(later, wait); }; }; const observeTableChanges = (iframe, callback) => { const tbody = iframe.contentDocument.querySelector('.ui-tablepro-tbody'); if (!tbody) return null; // 使用防抖包装回调函数 const debouncedCallback = debounce(callback, 300); const observer = new MutationObserver((mutations) => { // 检查是否有实际的内容变化 const hasContentChanges = mutations.some(mutation => { return mutation.type === 'childList' || (mutation.type === 'characterData' && mutation.target.nodeType === Node.TEXT_NODE); }); if (hasContentChanges) { debouncedCallback(); } }); // 配置观察选项 const config = { childList: true, // 观察子节点的添加或删除 subtree: true, // 观察所有后代节点 characterData: true, // 观察文本内容的变化 attributes: true // 观察属性变化 }; observer.observe(tbody, config); // 初始加载时触发一次回调 debouncedCallback(); return observer; }; const checkAndSelectRow = (row) => { const checkbox = row.querySelector('input[type="checkbox"]'); if (checkbox) { checkbox.checked = true; ['change', 'click', 'input'].forEach(eventType => { checkbox.dispatchEvent(new Event(eventType, { bubbles: true })); }); } }; // Filter handlers const handleAgeFilter = (iframe) => { const rows = getTableRows(iframe); if (!rows) return; rows.forEach(row => { const ageCell = row.querySelector('td:nth-child(3)'); if (!ageCell) return; const ageText = ageCell.textContent.trim(); const age = parseInt(ageText.split('·')[1].replace(/[^0-9]/g, '')); if (!isNaN(age) && age > 45) { checkAndSelectRow(row); } }); }; const handleGenderFilter = (iframe) => { const rows = getTableRows(iframe); if (!rows) return; rows.forEach(row => { const secondTd = row.querySelector('td:nth-child(2)'); if (!secondTd) return; const genderIcon = secondTd.querySelector('i.icon-gender.iboss-icon_women'); if (genderIcon) { checkAndSelectRow(row); } }); }; const handleEducationFilter = async (iframe) => { if (isFilteringRunning) { createToast('筛选程序正在运行中,请等待完成或点击停止'); return; } isFilteringRunning = true; const progressPanel = createProgressPanel(); document.body.appendChild(progressPanel); try { const rows = getTableRows(iframe); if (!rows) return; const totalRows = rows.length; let currentIndex = 0; let excludedCount = 0; let shouldStop = false; for (const row of rows) { if (shouldStop) break; currentIndex++; updateProgress(progressPanel, currentIndex, totalRows, excludedCount); await processRow(row, () => { excludedCount++; updateProgress(progressPanel, currentIndex, totalRows, excludedCount); }); await new Promise(resolve => setTimeout(resolve, 2000)); } finalizeProgress(progressPanel, totalRows, currentIndex, excludedCount, shouldStop); } catch (e) { log(`处理非统招本科按钮点击时出错: ${e.message}`, 'error'); } finally { isFilteringRunning = false; } }; const createProgressPanel = () => { const panel = document.createElement('div'); panel.style.cssText = ` position: fixed; top: 20px; right: 20px; background: white; padding: 15px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); z-index: 9999; font-size: 14px; min-width: 200px; `; const progressText = document.createElement('div'); progressText.style.marginBottom = '10px'; panel.appendChild(progressText); const stopButton = document.createElement('button'); stopButton.textContent = '停止'; stopButton.style.cssText = ` background: #ff4d4f; color: white; border: none; padding: 5px 15px; border-radius: 4px; cursor: pointer; width: 100%; `; panel.appendChild(stopButton); return panel; }; const updateProgress = (panel, current, total, excluded) => { const progressText = panel.querySelector('div'); progressText.textContent = `进度: ${current}/${total} (已排除: ${excluded})`; }; const finalizeProgress = (panel, total, current, excluded, stopped) => { const progressText = panel.querySelector('div'); const stopButton = panel.querySelector('button'); progressText.textContent = stopped ? `已停止 - 共${total}个,处理${current}个,排除${excluded}个` : `完成 - 共${total}个,处理${current}个,排除${excluded}个`; stopButton.textContent = '关闭'; stopButton.style.background = '#1890ff'; stopButton.disabled = false; stopButton.onclick = () => { panel.remove(); isFilteringRunning = false; }; }; const processRow = async (row, onExclude) => { row.click(); await new Promise(resolve => setTimeout(resolve, 2000)); const schoolInfo = document.querySelector('.dialog-wrap .geek-education-experience-wrap'); if (schoolInfo && (schoolInfo.textContent.includes('大专') || schoolInfo.textContent.includes('非全日制'))) { const operateBtn = document.querySelector('.dialog-wrap .operate-wrap .operate-item:nth-child(2)'); if (operateBtn) { operateBtn.click(); onExclude(); createToast(`检测到非统招本科简历: ${schoolInfo.textContent}`, 5000); } } const closeBtn = document.querySelector('.dialog-wrap .boss-popup__close'); if (closeBtn) { closeBtn.click(); } }; // Main injection function const injectStyles = (iframe) => { if (isInjected) return; const style = iframe.contentDocument.createElement('style'); style.textContent = STYLES; iframe.contentDocument.head.appendChild(style); const conditionFilter = iframe.contentDocument.querySelector('.condition-filter'); if (!conditionFilter) { log('未找到.condition-filter元素', 'error'); return; } // 监听表格变化 const tableObserver = observeTableChanges(iframe, () => { log('检测到表格内容变化'); updateUniversityInfo(iframe); }); const buttons = [ { text: '45+', className: '45more', handler: () => handleAgeFilter(iframe) }, { text: '女', className: 'female-btn', handler: () => handleGenderFilter(iframe) }, { text: '排除非统招本科', className: 'non-standard-btn', handler: () => handleEducationFilter(iframe) } ]; buttons.forEach(({ text, className, handler }) => { const button = createButton(text, className); button.addEventListener('click', handler); conditionFilter.insertBefore(button, conditionFilter.lastElementChild); }); isInjected = true; log('样式和按钮已注入'); // 在iframe卸载时清理observer iframe.addEventListener('unload', () => { if (tableObserver) { tableObserver.disconnect(); } }); }; // Main initialization const main = async () => { if (!PATH_REGEX.test(location.pathname)) { isInjected = false; return; } const iframe = document.querySelector('.frame-box > iframe, [class*="frame"] iframe'); if (!iframe) return; try { if (!iframe.contentWindow || !iframe.contentDocument) { log('跨域限制', 'error'); return; } } catch (e) { log(e.message, 'error'); return; } await new Promise(resolve => { if (iframe.contentDocument.readyState === 'complete') { resolve(); } else { iframe.addEventListener('load', resolve, { once: true }); } }); injectStyles(iframe); }; // SPA routing const observeSPA = () => { const originalPush = history.pushState; history.pushState = (...args) => { originalPush.apply(history, args); setTimeout(main, 300); }; window.addEventListener('popstate', () => setTimeout(main, 300)); }; // Initialization const init = () => { main(); setTimeout(main, 3000); const observer = new MutationObserver(() => { if (document.querySelector('.frame-box')) { observer.disconnect(); setTimeout(main, 1000); } }); observer.observe(document.body, { childList: true, subtree: true }); observeSPA(); }; // Start the script if (document.readyState === 'complete') { init(); } else { window.addEventListener('load', init); document.addEventListener('DOMContentLoaded', init); } })();