Replies: 2 comments
-
ztoolkit.Prompt.register([{
id: "open-url",
when: () => {
const inputNode = document.querySelector(".prompt-input") as HTMLInputElement
return inputNode.value.startsWith("/bd ")
},
callback: (prompt) => {
const container = prompt.createCommandsContainer();
container.classList.add("suggestions");
const searchText = prompt.inputNode.value.split(" ")?.[1]
ztoolkit.UI.appendElement({
tag: "div",
namespace: "html",
classList: ["command", "selected"],
styles: {
display: "flex",
flexDirection: "column",
justifyContent: "start",
},
children: [
{
tag: "span",
styles: {
fontWeight: "bold",
overflow: "hidden",
textOverflow: "ellipsis",
whiteSpace: "nowrap"
},
properties: {
innerText: `百度搜索 ${searchText}`
}
},
],
listeners: [
{
type: "click",
listener: () => {
Zotero.launchURL(`https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=baidu&wd=${searchText}&fenlei=256&rsv_pq=0x9df2c1d300270a23&rsv_t=83ffGcR0%2BQgIJnXGC%2FzwCnQu1w1eVRRnBSIZHb4zggbsHGNvf0T1lCDXROjc&rqlang=en&rsv_enter=1&rsv_dl=tb&rsv_sug3=7&rsv_sug1=2&rsv_sug7=100&rsv_sug2=0&rsv_btype=i&inputT=1631&rsv_sug4=1845`)
}
}
]
}, container)
}
}]) |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
@windingwind, @northword 由于zotero-plugin-template没有discussion讨论区, 并且我也是尝试在sytle里面添加代码, 所以就在这里post讨论了.

我想尝试添加的功能是:在shift+p激活提示窗口后, 输入特殊的关键字+词组, 就能执行特殊操作, 比如如入"/bd + hello", 就能打开浏览器用百度引擎搜索, "/gpt + LLM", 就能打开gpt客户端并且检索LLM这个词语了, 或者"/fd + quod erat demostrandum" 就能打开goldendict翻译词·翻译了, 基本效果图如下图所示
现在遇到困难是在ztoolkit.Prompt.register的search 中如何添加enter按键作为操作事件的启动执行,
我尝试了使用ztoolkit.Prompt.register的search的回调中添加 window.addEventListener("keydown", function, false), 但是好像是因为callback是每个字符响应的还是什么原因, 导致一次按键会多次执行, 请问有在prompt窗口下有更好的添加按键方式?
Beta Was this translation helpful? Give feedback.
All reactions