使用Internet Explorer中的window.opener在Windows之间传递变量

时间:2014-05-30 16:42:08

标签: javascript jquery internet-explorer window.open window.opener

我有两个窗户;其中一个使用函数window.open("URL", [parameters])打开。我的问题是我想将子窗口中的元素发送到父窗口,这在所有浏览器中都可以正常工作,Internet Explorer(目前使用的是IE11)除外。

我想找到一个解决方案,因为它需要在Internet Explorer上运行。

我使用的代码是用jQuery编写的,如下所示:

//Inicializating document and events
var x=$(document);
x.ready(inicializarDocumento);

function inicializarDocumento(){
    var x=$("#boAceptar");
//When i click in my button it executes the function pasarDatos
    x.click(pasarDatos);
}

function pasarDatos(){
//I get the reference of the windows father
    var doc=window.opener.document;
    var x=window.opener.$("#seleccionDireccionId");


    var form=$("form[name='foconfirmar']");


//I execute the next code when i submit the form
    form.submit(function (event){
        var listadoid=$("#listadoid option:selected");
        var tipoVia=$("#idTipoVia");
        var km=$("#idkm");
        var piso=$("#idPiso");
        var puerta=$("#idPuerta");
        var urbanizacion=$("#idUrbanizacion");
        var bloque=$("#idBloque");
        var escalera=$("#idEscalera");
        var observaciones=$("#idObservaciones");


        if (listadoid.text()==""){
            alert("Debe seleccionar una dirección de las disponibles");

        }else{
            var o = new Option(listadoid.text()+", "+tipoVia.val()+", "+km.val()+", "+piso.val()+", "+puerta.val()+", "+urbanizacion.val()+", "+bloque.val()+", "+escalera.val()+", "+observaciones.val(), listadoid.val());

            $(o).html(listadoid.text()+", "+tipoVia.val()+", "+km.val()+", "+piso.val()+", "+puerta.val()+", "+urbanizacion.val()+", "+bloque.val()+", "+escalera.val()+", "+observaciones.val());

            x.append(o);
        }
            event.preventDefault();
            event.stopImmediatePropagation();
    });
    self.close();
}

0 个答案:

没有答案