zoukankan      html  css  js  c++  java
  • 解决IE不能在新窗口中向父窗口的下拉框添加项的问题

    >
    首先我们要明确下面的事实:
    1. 利用options.add(new Option("text", "value"));来向下拉列表(SELECT BOX)添加新项(Option)
    2. 在同一个页面利用上述方法添加新项没有任何问题
    现在我们要尝试实现下面的功能:
    前提
    有两个页面A和B,A页面含有一个下拉列表控件
    目标
    当在A页面通过window.open打开B页面时,要求B页面具有向A页面的下拉列表控件中插入新项(option)的能力。

    下面的方式在非IE浏览器上正常运行,IE浏览器中将导致失败:
    JavaScript in B page
    function updateData() { 
        // get document object of its parent window(opener) 
        var doc  = opener.document, 
        list  = doc.getElementById("ddList"); 
        // insert dd list a new option 
        list.options.add(new Option("New Text", list.options.length)); 
        window.close(); 
    }
    因为IE不允许在另一个页面去改变当前页面的下拉列表控件的值。但是我们之前说过,IE是允许在自己页面改变自己的下拉列表的值。所以我们的解决思路就是在父窗口增加一个函数,该函数封装了对下拉列表的添加项操作,然后在新窗口中调用这个函数间接地实现增加项功能,以下是解决方案的源代码中的JavaScript部分:
    JavaScript code in A page
    function popupBPage() { 
        window.open("B.html","", "width=500;height=400"); 
    } 
    function addOption(list, text, value) { 
        list.options.add(new Option(text, value)); 
    }
    JavaScript code in B page
    function updateData() { 
        // get document object of its parent window(opener) 
        var doc  = opener.document, 
            list  = doc.getElementById("ddList"); 
        // insert dd list a new option 
        opener.addOption(list, document.getElementById("textInput").value, list.options.length); 
        window.close(); 
    }
  • 相关阅读:
    MVC学习中遇到问题
    静态类和单例模式区别
    类或方法名后加<>
    MVC5入门
    开发BI系统时的需求分析研究
    BI项目需求分析书-模板
    商业智能学习系统
    数据库设计三大范式[转]
    BW对应后台表[转]
    SQL优化方案
  • 原文地址:https://www.cnblogs.com/objectorl/p/1632714.html
Copyright © 2011-2022 走看看