Skip to content
大纲

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();
});

注意事项

  1. 确保 DOM 已加载:建议将内容添加代码放在 DOM 事件监听器中
  2. 遵循样式规范:尽量使用已有的 CSS 类(如 setting-item),避免重新定义样式,保证样式的一致性
  3. 数据持久化:使用 localStorage 保存用户设置,键名建议包含插件 ID 以避免冲突

Released under the Apache-2.0 License.