Greasy Fork is available in English.
让你在使用插件的时候更方便?(what?)
< 脚本 银河奶牛放置-辅助增强 的反馈
根据自己的需求做了个修改,显示还需要多少材料,点击数字复制,替换最后一个函数就可以 function onInputValueChange(value) { console.log('动态input值变化:', value); let itemInfoArr = []; let needItemObj = needItemEle.children; if (needItemObj.length > 3 && needItemObj.length % 4 == 0 && needItemObj[3].innerText.startsWith('需要:')) { for (let i = 0; i < needItemObj.length; i++) { if (i % 4 == 0) { itemInfoArr.push([needItemObj[i]]); } else { itemInfoArr[itemInfoArr.length - 1].push(needItemObj[i]); } } itemInfoArr.forEach(element => { let additem = document.createElement('span'); let num = parseFloat(element[1].innerText.replace(/[^0-9.]/g, '')); let inventory = parseFloat(element[0].innerText.replace(/[^0-9.]/g, '')); if (isNaN(num)) { num = 1; } if(isNaN(inventory)) { inventory = 1; } const result = num * value - inventory; if (result <= 0) { element[3].innerHTML = `需要:已满足` } else { element[3].innerHTML = `需要:${result.toFixed(1)}个`; // 添加指针样式表明可点击 element[3].style.cursor = 'pointer'; element[3].title = '点击复制'; // 添加点击复制功能 element[3].addEventListener('click', function() { // 获取要复制的文本 const textToCopy = result.toFixed(1); // 使用现代剪贴板API navigator.clipboard.writeText(textToCopy) .then(() => { // 复制成功提示 const originalText = this.innerHTML; this.innerHTML = '已复制!'; // 2秒后恢复原始文本 setTimeout(() => { this.innerHTML = originalText; }, 2000); }) .catch(err => { console.error('复制失败:', err); // 如果现代API失败,使用老式方法 const textarea = document.createElement('textarea'); textarea.value = textToCopy; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy'); document.body.removeChild(textarea); // 提示用户 alert('已复制到剪贴板'); }); }); } }); } else { for (let i = 0; i < needItemObj.length; i++) { if (i % 3 == 0) { itemInfoArr.push([needItemObj[i]]); } else { itemInfoArr[itemInfoArr.length - 1].push(needItemObj[i]); } } itemInfoArr.forEach(element => { let additem = document.createElement('span'); let num = parseFloat(element[1].innerText.replace(/[^0-9.]/g, '')); let inventory = parseFloat(element[0].innerText.replace(/[^0-9.]/g, '')); if (isNaN(num)) { num = 1; } if(isNaN(inventory)) { inventory = 1; } const result = num * value - inventory; if (result <= 0) { additem.innerHTML = `需要:已满足`; } else { additem.innerHTML = `需要:${result.toFixed(1)}个`; // 添加指针样式表明可点击 additem.style.cursor = 'pointer'; additem.title = '点击复制'; // 添加点击复制功能 additem.addEventListener('click', function() { // 获取要复制的文本 const textToCopy = result.toFixed(1); // 使用现代剪贴板API navigator.clipboard.writeText(textToCopy) .then(() => { // 复制成功提示 const originalText = this.innerHTML; this.innerHTML = '已复制!'; // 2秒后恢复原始文本 setTimeout(() => { this.innerHTML = originalText; }, 2000); }) .catch(err => { console.error('复制失败:', err); // 如果现代API失败,使用老式方法 const textarea = document.createElement('textarea'); textarea.value = textToCopy; document.body.appendChild(textarea); textarea.select(); document.execCommand('copy'); document.body.removeChild(textarea); // 提示用户 alert('已复制到剪贴板'); }); }); } needItemEle.insertBefore(additem, element[2].nextSibling); }); } }
登录以发布留言。
根据自己的需求做了个修改,显示还需要多少材料,点击数字复制,替换最后一个函数就可以
function onInputValueChange(value) {
console.log('动态input值变化:', value);
let itemInfoArr = [];
let needItemObj = needItemEle.children;
if (needItemObj.length > 3 && needItemObj.length % 4 == 0 && needItemObj[3].innerText.startsWith('需要:')) {
for (let i = 0; i < needItemObj.length; i++) {
if (i % 4 == 0) {
itemInfoArr.push([needItemObj[i]]);
} else {
itemInfoArr[itemInfoArr.length - 1].push(needItemObj[i]);
}
}
itemInfoArr.forEach(element => {
let additem = document.createElement('span');
let num = parseFloat(element[1].innerText.replace(/[^0-9.]/g, ''));
let inventory = parseFloat(element[0].innerText.replace(/[^0-9.]/g, ''));
if (isNaN(num)) {
num = 1;
}
if(isNaN(inventory)) {
inventory = 1;
}
const result = num * value - inventory;
if (result <= 0) {
element[3].innerHTML = `需要:已满足`
} else {
element[3].innerHTML = `需要:${result.toFixed(1)}个`;
// 添加指针样式表明可点击
element[3].style.cursor = 'pointer';
element[3].title = '点击复制';
// 添加点击复制功能
element[3].addEventListener('click', function() {
// 获取要复制的文本
const textToCopy = result.toFixed(1);
// 使用现代剪贴板API
navigator.clipboard.writeText(textToCopy)
.then(() => {
// 复制成功提示
const originalText = this.innerHTML;
this.innerHTML = '已复制!';
// 2秒后恢复原始文本
setTimeout(() => {
this.innerHTML = originalText;
}, 2000);
})
.catch(err => {
console.error('复制失败:', err);
// 如果现代API失败,使用老式方法
const textarea = document.createElement('textarea');
textarea.value = textToCopy;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
// 提示用户
alert('已复制到剪贴板');
});
});
}
});
} else {
for (let i = 0; i < needItemObj.length; i++) {
if (i % 3 == 0) {
itemInfoArr.push([needItemObj[i]]);
} else {
itemInfoArr[itemInfoArr.length - 1].push(needItemObj[i]);
}
}
itemInfoArr.forEach(element => {
let additem = document.createElement('span');
let num = parseFloat(element[1].innerText.replace(/[^0-9.]/g, ''));
let inventory = parseFloat(element[0].innerText.replace(/[^0-9.]/g, ''));
if (isNaN(num)) {
num = 1;
}
if(isNaN(inventory)) {
inventory = 1;
}
const result = num * value - inventory;
if (result <= 0) {
additem.innerHTML = `需要:已满足`;
} else {
additem.innerHTML = `需要:${result.toFixed(1)}个`;
// 添加指针样式表明可点击
additem.style.cursor = 'pointer';
additem.title = '点击复制';
// 添加点击复制功能
additem.addEventListener('click', function() {
// 获取要复制的文本
const textToCopy = result.toFixed(1);
// 使用现代剪贴板API
navigator.clipboard.writeText(textToCopy)
.then(() => {
// 复制成功提示
const originalText = this.innerHTML;
this.innerHTML = '已复制!';
// 2秒后恢复原始文本
setTimeout(() => {
this.innerHTML = originalText;
}, 2000);
})
.catch(err => {
console.error('复制失败:', err);
// 如果现代API失败,使用老式方法
const textarea = document.createElement('textarea');
textarea.value = textToCopy;
document.body.appendChild(textarea);
textarea.select();
document.execCommand('copy');
document.body.removeChild(textarea);
// 提示用户
alert('已复制到剪贴板');
});
});
}
needItemEle.insertBefore(additem, element[2].nextSibling);
});
}
}