JS event note (BOM): ventana de selección emergente

Use JavaScript para crear una ventana emergente para el efecto de selección

Use window.open para abrir una nueva ventana, y use window.opener para obtener la etiqueta de la ventana principal;

Métodos de ventana comunes y propiedades usadas aquí

Método Descripción
abierto Abrir una nueva ventana
cerrar Cerrar ventana del navegador
atención Enfocar una ventana
abrelatas Devuelve el objeto de ventana principal de la ventana abierta actualmente, que es un objeto de ventana
padre Devuelve la ventana principal, que es un objeto de ventana
yo Devuelve el objeto de ventana actual, que es un objeto de ventana

Ventana principal html:

<body>
<form>
    <table width="600px" cellpadding="0" cellspacing="0">
        <tr>
            <td align="right">姓名:</td>
            <td>
                <input type="text" />
            </td>
        </tr>
        <tr>
            <td align="right">性别:</td>
            <td>
                <input type="radio" name="sex" value="0" /><input type="radio" name="sex" value="1" /></td>
        </tr>
        <tr>
            <td align="right">出生年月:</td>
            <td>
                <select>
                    <option value="2020">2020</option>
                    <option value="2019">2019</option>
                    <option value="2018">2018</option>
                    <option value="2017">2017</option>
                    <option value="2016">2016</option>
                </select><select>
                    <option value="1">1</option>
                    <option value="2">2</option>
                    <option value="3">3</option>
                    <option value="4">4</option>
                    <option value="5">5</option>
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                </select></td>
        </tr>
        <tr>
            <td align="right">在读学校:</td>
            <td>
                <input type="text" id="school" />
                <input type="submit" value="选择" id="submit" />
            </td>
        </tr>
    </table>
</form>
<script src="js/window.js"></script>
</body>

window.js:

{
    let submit = document.getElementById("submit");  //读取id为submit的标签
    submit.addEventListener("click", function( event ){  //对submit添加点击事件
        /* window.open打开一个新的窗口 
        * window.open("url","name","features");
        *url:打开一个新的窗口,加载url指定的页面;
        *name:可以不写;
        *features:字符串,可以是新窗口的一些属性;
        */
        window.open("choice.html","","toolbar=no,scrollbars=yes," +
            "menubar=no,width=300px,height= 300px,top=200px,left=300px");
        //toolbar:工具栏,scrollbars:下拉滚动条,menubar:菜单栏
    });
}

Nueva ventana (ventana secundaria):

<style>
    ul,li,a{
        list-style: none;
        text-decoration: none;
    }
    body>ul>li>a{
        color: #134788;
        display: block;
        padding: 10px 20px 10px 0;
    }
    body>ul>li>a:hover{
        background-color: #B292FF;
        color: white;
    }
</style>
<body>
<ul id="navUl">
    <li><a href="#">重庆大学</a></li>
    <li><a href="#">重庆师范大学</a></li>
    <li><a href="#">西南大学</a></li>
    <li><a href="#">重庆邮电大学</a></li>
    <li><a href="#">重庆交通大学</a></li>
    <li><a href="#">西南农业大学</a></li>
    <li><a href="#">重庆医科大学</a></li>
    <li><a href="#">西南政法大学</a></li>
    <li><a href="#">重庆理工大学</a></li>
    <li><a href="#">长江师范学院</a></li>
    <li><a href="#">重庆三峡学院</a></li>
    <li><a href="#">重庆工程学院</a></li>
    <li><a href="#">重庆工商大学</a></li>
</ul>
<script>
    {
        let navUl = document.getElementById("navUl");  //读取id为navUl的标签
        let li = navUl.children;      //获取navUl的子标签数组
        for( let i = 0; i <= li.length-1; i++ ){      //对li进行遍历
            li[i].addEventListener("click",function( event ){
                /* window.opener指的是弹出窗口的父窗口 */
                //找到父窗口id为school的标签
                let school = window.opener.document.getElementById("school");  
                let tar = event.currentTarget;   //当前选中标签
                let lia = tar.children[0];       //当前选中标签索引为0的子标签
                school.value = lia.innerHTML;    //将当前选中的标签的内容赋值给父窗口的school标签的值
                self.close();                    //关闭当前窗口
                window.opener.focus();           //用focus方法将焦点聚集到父窗口
            })
        }
    }
</script>
</body>
13 artículos originales publicados · Me gusta2 · Visitas 318

Supongo que te gusta

Origin blog.csdn.net/weixin_46410264/article/details/105106702
Recomendado
Clasificación