网页插件:手动@ChatGPT

@Ta 2023-03-17发布,2023-03-17修改 12377点击
导入网页插件:手动@ChatGPT(当前用户:6,总安装次数:13)
<script src="api.webplug-file.17813_public_at-chatgpt.js"></script>

以下代码和说明均由ChatGPT修改完成,插件开发原因:问问题手动输入@ 太麻烦,自动@ 又太占用资源,没有必要且不方便

效果展示

16790423183916.png(168.25 KB)

代码审查

function insertText(textarea, text) {
  const { selectionStart, selectionEnd, value } = textarea;

  if (document.selection) {
    const sel = document.selection.createRange();
    sel.text = text;
  } else if (typeof selectionStart === "number" && typeof selectionEnd === "number") {
    textarea.value = value.slice(0, selectionStart) + text + value.slice(selectionEnd);
    const cursorPos = selectionStart + text.length;
    textarea.selectionStart = textarea.selectionEnd = cursorPos;
  } else {
    textarea.value += text;
  }
}

$(document).ready(() => {
  const buttonHtml = `
    <p id="text-buttons">
      <button id="text1">Text1</button>
      <button id="text2">Text2</button>
      <button id="text3">Text3</button>
    </p>`;
  $("#content").after(buttonHtml);

  $("#text-buttons button").click((event) => {
    event.preventDefault(); // 阻止按钮的默认行为
    const text = $(event.target).text();
    insertText(document.getElementById("content"), text);
  });
});

说明文档

概述

该代码段是一个简单的基于 jQuery 的 JavaScript 应用程序,用于在 HTML 文档中的文本区域 (textarea) 中插入文本。当用户点击按钮时,相应的文本将插入到文本区域的当前光标位置。

函数:insertText(textarea, text)

这个函数用于将给定的文本插入到指定的文本区域 (textarea) 的当前光标位置。

参数:

  • textarea: 要插入文本的文本区域元素。
  • text: 要插入的文本。

功能说明:

  1. 获取文本区域的 selectionStartselectionEndvalue 属性。
  2. 如果 document.selection 存在,则创建一个文本范围并将文本插入到该范围。
  3. 如果 selectionStartselectionEnd 是数字类型,则将文本插入到当前选择的位置,并更新光标位置。
  4. 如果上述条件都不满足,则将文本追加到文本区域的末尾。

事件处理程序:$(document).ready()

当文档加载完成时,此事件处理程序将执行以下操作:

  1. 创建包含三个按钮的 HTML 字符串。
  2. 将按钮的 HTML 字符串插入到具有 id "content" 的元素之后。
  3. 为每个按钮添加单击事件处理程序。

事件处理程序:$("#text-buttons button").click()

此事件处理程序在用户点击按钮时执行以下操作:

  1. 阻止按钮的默认行为(如提交表单)。
  2. 获取被点击按钮上的文本。
  3. 调用 insertText() 函数将获取到的文本插入到具有 id "content" 的文本区域元素中。
回复列表(7|隐藏机器人聊天)
添加新回复
回复需要登录