NPP 注册设置指南
概述
本文介绍如何注册获取并添加 NPP 的设置。
1.获取mainConts容器
如果插件在 MetaData 中配置了 @setting true
,那么 nitaiPage 会在页面再次加载时创建一个 data-value="ID"
的设置内容区域 (mainConts),开发者可以通过以下方式获取:
使用 CSS 选择器获取容器
通过插件 ID 定位对应的 mainConts 元素:
javascript
// 将 YOUR_PLUGIN_NID 替换为实际插件ID
const pluginId = 'YOUR_PLUGIN_NID';
const mainConts = document.querySelector(`.mainConts[data-value="${pluginId}"]`);
2.往容器中添加内容
获取mainConts容器后,可以通过 DOM 操作添加自定义设置内容:
示例
javascript
// 获取容器
if (mainConts) {
// 创建设置内容
const settingsContent = document.createElement('div');
settingsContent.className = 'plugin-settings-content';
settingsContent.innerHTML = `
<style>
.setting-item {
padding: 10px;
}
</style>
<h3>插件设置</h3>
<div class="setting-item">
<span>测试文字</span>
</div>
<div class="setting-item">
<span>测试文字</span>
<div class="switch" id="NID_Test_switch"></div>
</div>
`;
// 添加到容器
mainConts.appendChild(settingsContent);
}
对于 CoreNpp
CoreNpp 比较特殊,优先于普通 Npp 加载,因此需要通过接收通知的方式来插入内容到对应的插件设置
javascript
// 等待插件设置创建完成后再初始化设置
document.addEventListener('pluginSettingsTemplateReady', function () {
generateYourPluginSettings();
});
注意事项
- 确保 DOM 已加载:建议将内容添加代码放在 DOM 事件监听器中
- 遵循样式规范:尽量使用已有的 CSS 类(如
setting-item
),避免重新定义样式,保证样式的一致性 - 数据持久化:使用 localStorage 保存用户设置,键名建议包含插件 ID 以避免冲突