主頁 > 前端設計 > 多個select下拉選框無法分別設定默認值

多個select下拉選框無法分別設定默認值

2021-05-20 05:23:40 前端設計

油猴子腳本界面分別添加了3個select下拉選框,前面的搜索引擎可以根據設定默認選定值,后面的前后臺打開/后側打開添加一個不顯示input的selex,通過sel()回傳值,能得到selected標簽元素,無法對應的默認選定的后臺:false


Alt+Y進入設定界面
https://greasyfork.org/zh-CN/scripts/426697

設定默認值

_cfg = {
            Gesture: {
                mouseButton: 2,
                suppressionKey: "",
                distanceThreshold: 2,
                distanceSensitivity: 20,
                Timeout: {
                    active: true,
                    duration: 1
                }
            },
            Drag: {
                linktextAslink: true,
                dragInTextarea: true
            },
            directions: 8,//方向
            language: "zh",
            gesture:{
                //"2":  {name:"toTop", arg:[]},
            },
            text: {// dragText
                "3":  {
                    name:"searchText",
                    arg:["https://www.baidu.com/s?wd=", false, true]
                },
               "6":  {
                    name:"searchText",
                    arg:["https://www.google.com/search?q=", false, true]
                }
            },
            link: {// drag link
                "3": {
                    name:"openLink",
                    arg:[false, true]
                },
                "9": {name:"copyLink", arg:[]},
            },
            image: {// drag image
                "2": {
                    name:"openImgURL",
                    arg:[false, true]
                },
                "3": {
                    name:"searchImg",
                    arg:["https://graph.baidu.com/details?isfromtusoupc=1&tn=pc&carousel=0&promotion_name=pc_image_shituindex&extUiData%5bisLogoShow%5d=1&image=U-R-L", false, true]
                }
        },


arg標簽

    arg: {
            userDefine:{
                description:{zh:['自定義功能代碼'], en:['User Define Function Code']},
                arg:['textarea']
            },
            openLink:{
                description:{zh:['前臺打開', '右側打開'], en:['Open Link', 'Load In Foreground', 'Open in Next Tab']},
                arg:['selex:foreGround', 'selex:nextTab']
            },
            openImgURL:{
                description:{zh:['前臺打開', '右側打開'], en:['Copy ImageURL', 'Load In Foreground', 'Open in Next Tab']},
                arg:['selex:foreGround', 'selex:nextTab']
            },
            openImgLink:{
                description:{zh:['前臺打開', '右側打開'], en:['Open ImageLink', 'Load In Foreground', 'Open in Next Tab']},
                arg:['selex:foreGround', 'selex:nextTab']
            },
            searchText:{
                description:{zh:['搜索引擎', '前臺打開', '右側打開'], en:['SearchingEnging', 'Load In Foreground', 'Open in Next Tab']},
                arg:['select:searchEnging', 'selex:foreGround', 'selex:nextTab']
            },
            searchImg:{
                description:{zh:['圖片搜索引擎', '前臺打開', '右側打開'], en:['Image SearchingEnging', 'Load In Foreground', 'Open in Next Tab']},
                arg:['select:imgSearchEnging', 'selex:foreGround', 'selex:nextTab']
            }

        },


下拉選框

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"
        }
    };

設定界面

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="https://bbs.csdn.net/topics/${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 'texta':
                    html += `<span><textarea>${mpUnescape(argValue[i])}</textarea><i></i></span>`;
                    break;
                case 'input':
                    html += '<span><input type="text"><i></i></span>';
                    break;
                case 'check':
                    html += `<span><input type="checkbox" id="${name + rand}" value=https://bbs.csdn.net/topics/${argValue[i] || false} ${argValue[i] ? "checked" : ''} class="switch" name="fnCheckbox"><label for="${name + rand}" ${argValue[i] ? 'class="switchOn"' : 'class="switchOff"'}>${description[i]}</label></span>`;
                    break;
                case 'selec':
                    selectName = agrDetail[i].split(':').pop();
                    html += `<span><input type="text" value=https://bbs.csdn.net/topics/${argValue[i] || ''}><select name="fnSelect">`;
                    for (let k in options[selectName]){

                        html += `<option value=https://bbs.csdn.net/topics/${options[selectName][k]} ${sel(argValue[i], options[selectName][k])}>${k}`;
                    }
                    html += '</select></span>';
                    break;
                case 'selex':
                    selectName = agrDetail[i].split(':').pop();
                    //html += `<span><input type="hidden" value=https://bbs.csdn.net/topics/${argValue[i]}>