Files
weilin9999-WeiLin-Comfyui-T…/js_node/weilin_prompt_ui_node.js
T
WeiLin 51b9370853 0.0.0.1版本
0.0.0.1版本
2025-01-09 22:52:19 +08:00

69 lines
2.3 KiB
JavaScript

import { app } from '../../scripts/app.js'
// 提示词 Node
let global_randomID = (Math.random() + new Date().getTime()).toString(32).slice(0, 8); // 随机种子ID
localStorage.setItem("weilin_prompt_ui_onfirst", 0);
app.registerExtension({
name: "weilin.prompt_ui_node",
async init() {
var script = document.createElement('script');
// 设置 script 元素的属性
script.src = './weilin/prompt_ui/webjs'; // 注意确保这里的路径是正确的,并且服务器正在运行。
script.type = 'text/javascript';
script.async = true;
document.head.appendChild(script);
// 创建一个新的 link 元素
var link = document.createElement('link');
// 设置 link 元素的属性
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = './weilin/prompt_ui/file/style.css'; // 确保这里的路径是正确的,并且服务器正在运行。
document.head.appendChild(link);
},
async setup() { },
async beforeRegisterNodeDef(nodeType, nodeData, app) {
// console.log(app)
if (
nodeData.name === "WeiLinPromptUI"
) {
// console.log(nodeData)
// Create node
const onNodeCreated = nodeType.prototype.onNodeCreated;
nodeType.prototype.onNodeCreated = async function () {
const r = onNodeCreated ? onNodeCreated.apply(this, arguments) : undefined;
const thisNodeName = nodeData.name // 存储当前的节点名称
let nodeTextAreaList = []
for (let index = 0; index < this.widgets.length; index++) {
const element = this.widgets[index];
let thisInputElement = element.element
thisInputElement.readOnly = true
nodeTextAreaList[0] = thisInputElement
}
this.addWidget("button", "打开可视化PromptUI", '', ($e) => {
// console.log(thisNodeName)
// 发送消息给父窗口
window.parent.postMessage({ type: 'weilin_prompt_ui_openPromptBox', id: global_randomID, prompt: nodeTextAreaList[0].value }, '*')
}, false);
window.addEventListener('message', event => {
// console.log(e)
if(event.data.type === 'weilin_prompt_ui_prompt_update_prompt_'+global_randomID){
nodeTextAreaList[0].value = event.data.data
}
})
return r;
};
}
},
});