油猴鼠标拖拽脚本设置界面,新增功能,搜索引擎文本框和下拉框,默认选中第一个选项,input文本框为空,可以在控制台输出动态onchange选中后的值,如何动态选中,值传入input文本框
设置界面中的case: selec
中:argValue[i]
为默认设置功能的值options[selectName][k]
为下拉选框列表的值
Alt+Y进入设置界面
测试脚本代码
https://greasyfork.org/zh-CN/...
设置界面
function arg2html(argument, type, trk){
let html ="",
argu, i,rand, trackTxt, name,
argValue = [],
agrDetail = [],
description,
selectName;
if(typeof argument === "object")
argu = argument;
else
argu = JSON.parse(argument);
trackTxt = trk || '';
name = argu.name;
html += `<span>${name}</span><span name="alias">${argu.alias ? argu.alias : local[type][name][cfg.language]}</span><b style="visibility:${argu.arg.length ? "visible" : "hidden"};" name="toggleArgument">▲</b><input type="text" name="${name}" value="${trackTxt}" data-mark="${type}" readonly="readonly"><br/><div class="fnArgument">`;
if(argu.arg.length > 0){
argValue = trackTxt ? argu.arg : [];
agrDetail = fnLocal.arg[name].arg;
description = fnLocal.arg[name].description[cfg.language];
for(i in agrDetail){
rand = Math.floor(Math.random()*1000);
switch (agrDetail[i].slice(0,5)) {
case 'input':
html += '<span><input type="text"><i></i></span>';
break;
case 'selec':
selectName = agrDetail[i].split(':').pop();
html += `<span><input type="text" value=${argValue[i] || ''}><select name="fnSelect" onchange="console.log(this.options[this.options.selectedIndex].value);">`;
for (let k in options[selectName]){
html += `<option value=${options[selectName][k]} ${sel(argValue[i], options[selectName][k])}>${k}</option>`;
}
html += '</select></span>';
break;
default:
html = `<span style="visibility:hidden;"></span>`;
break;
}
}
}
return html + "</div>";
}
下拉选框
options = {
imgSearchEnging: {// image searching
Baidu: "https://graph.baidu.com/details?isfromtusoupc=1&tn=pc&carousel=0&promotion_name=pc_image_shituindex&extUiData%5bisLogoShow%5d=1&image=U-R-L",
},
searchEnging: {// text searching
Baidu: "https://www.baidu.com/s?wd=",
Google: "https://www.google.com/search?q=",
},
foreGround: {
前台: "ture",
后台: "false",
},
nextTab: {
右侧: "ture",
后端: "false"
}
};
设置功能对应选项
fnLocal = {
arg: {
openLink:{
description:{zh:['前台打开', '右侧打开'], en:['Load In Foreground', 'Open in Next Tab']},
arg:['select:foreGround', 'select:nextTab']
},
openImgURL:{
description:{zh:['前台打开', '右侧打开'], en:['Load In Foreground', 'Open in Next Tab']},
arg:['select:foreGround', 'select:nextTab']
},
openImgLink:{
description:{zh:['前台打开', '右侧打开'], en:['Load In Foreground', 'Open in Next Tab']},
arg:['select:foreGround', 'select:nextTab']
},
searchText:{
description:{zh:['搜索引擎', '前台打开', '右侧打开'], en:['SearchingEnging', 'Load In Foreground', 'Open in Next Tab']},
arg:['select:searchEnging', 'select:foreGround', 'select:nextTab']
},
searchImg:{
description:{zh:['图片搜索引擎', '前台打开', '右侧打开'], en:['Image SearchingEnging', 'Load In Foreground', 'Open in Next Tab']},
arg:['select:imgSearchEnging', 'select:foreGround', 'select:nextTab']
}
},
previousElementSibling 属性返回指定元素的前一个兄弟元素
监听select的change事件,在change时把值传给上一个元素不就行了?