如何使用JavaScript获取谷歌日历指定日历的事件并修改文本颜色
解决方案
核心逻辑:谷歌日历每个事件的data-eventid属性值格式为<所属日历ID>_<事件唯一标识串>,不需要修改querySelectorAll筛选规则,只需在处理事件前校验归属即可。
修改步骤如下:
- 第一步:在
content.js文件顶部("use strict";之后)添加两个常量,替换为你自己的日历ID和想要的颜色:
// 替换为你的目标日历ID const TARGET_CALENDAR_ID = 'abcdefg1234567'; // 替换为你想要设置的文本颜色 const CUSTOM_EVENT_COLOR = '#FA8072';
- 第二步:修改
colorizeAll函数,增加归属判断,仅处理目标日历的事件:
function colorizeAll() { let eventElements = document.querySelectorAll('[data-eventid]'); for (let eventElement of eventElements) { const eventId = eventElement.getAttribute('data-eventid'); // 仅处理归属为目标日历的事件 if (eventId.startsWith(TARGET_CALENDAR_ID + '_')) { colorizeEvent(eventElement); } } }
- 第三步:把
colorizeEvent函数里两处颜色赋值的代码,统一替换为我们定义的常量:
两处原代码let color = dotEl.style.borderColor;(或你修改后的let color = '#FA8072';)都改成let color = CUSTOM_EVENT_COLOR;
如果修改后不生效,可以右键点击目标日历下的任意事件,选择「检查」查看元素的data-eventid属性值,确认前缀是否和你的目标日历ID完全一致,若格式有差异可调整判断规则(比如把startsWith换成includes也可,只要能匹配到对应ID就行)。
内容的提问来源于stack exchange,提问作者Danny DeLoach
相关产品推荐
相关产品推荐

