or
I have a window being launched from a page in a different doamain trying to close itself.
So, in domain A... I have the div tag in my page.
<div id="open" class="openWindow" style="text-align: center"></div>.. and in the script I'm using to launch the window:
$('#open').parent().addClass("openWindow");var windowOpen = $("#open");if (!windowOpen.data("kendoWindow")) { windowOpen.kendoWindow({ width: "400px", height: "320px", title: "Open", actions: ["Refresh", "Close"], visible: false, });}windowOpen.data("kendoWindow").center();windowOpen.data("kendoWindow").open();Also, in domain B, I have the open.htm file and with the following script.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content="IE=Edge" http-equiv="X-UA-Compatible" /> <title>Open</title> <meta content="Ronald E. Zepp II" name="author" /> <meta content="width=device-width; initial-scale=1.0" name="viewport" /> <!-- !CSS --> <link href="Scripts/html5reset-1.6.1.css" rel="stylesheet" /> <link href="http://cdn.kendostatic.com/2012.2.913/styles/kendo.common.min.css" rel="Stylesheet" /> rel="Stylesheet" /> <link href="Scripts/kendo.agile2.css" rel="Stylesheet" /> <!-- JS --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" type="text/javascript"></script> <script src="http://cdn.kendostatic.com/2012.2.913/js/kendo.all.min.js" type="text/javascript"></script> <script src="Scripts/bc.open-1.0.0.js" type="text/javascript"></script></head><body id="open-window-body"><table style="background-color: #F8F8FF"> <tr> <td style="padding: 10px; margin: 10px"></td> <td> CICode or Partnumber: </td> <td><input type="text" id="item" class="k-textbox" style="margin-left: 10px; width: 200px; margin-right: 10px" /></td> <td style="width: 100%;"></td> </tr> <tr style="height: 15px"> <td colspan="3"></td> <td style="width: 100%;"></td> </tr> <tr> <td style="padding: 10px; margin: 10px"></td> <td colspan="3"><div id="org_list" style="border: thin solid #94c0d2; height: 200px; width:340px; overflow: auto"></div></td> </tr> <tr style="height: 15px"> <td colspan="3"></td> <td style="width: 100%;"></td> </tr> <tr> <td colspan="2"></td> <td colspan="2" style="text-align: right; white-space: nowrap;"><input id="Ok" type="button" class="k-button" value="Ok" style="width: 90px; height: 30px; margin-bottom: 10px; margin-right: 10px;" /><input type="button" class="k-button" id="Cancel" value="Cancel" style="width: 90px; height: 30px; margin-right: 10px; margin-bottom: 10px;" /></td> </tr></table > <div id="window" style="text-align: right" > <table> <tr valign="middle" > <td><img id="window_image" src="images/stop.png" alt="" /> </td> <td style="padding-right: 5px; padding-left: 5px"></td> <td class="anr-message-text"> <div id="window_message">Test Message</div> </td> </tr> </table> <div style="text-align: right"> <button id="Yes" class="k-button">Yes</button> <button id="No" class="k-button">No</button> </div> </div></body> <script type="text/x-kendo-tmpl" id="template"> <div> ${OrgCode} ${Name} </div> </script></html>
$("#Cancel").click(function () { $("#Cancel").closest(".k-window-content").data("kendoWindow").close();});Now, when I click the cancel button using the recommended way to reach the close funcion, I get the following error:
SCRIPT5007: Unable to get value of the property 'close': object is null or undefined Same domain, window.parent works fine, different domain... and I can't get the window to close itself.
YAHOOsuggest={ResultSet:{Query:'',Result:[]}};<br>YAHOO = { Finance: { SymbolSuggest: { ssCallback: function (jsn) { YAHOOsuggest = jsn; return (jsn); } } } };function InitializeStockInput() { $("#stockInput").kendoAutoComplete({<br> dataSource: new kendo.data.DataSource({ data: YAHOOsuggest.ResultSet.Result, type: "json" }), placeholder: "Select stock...", minLength: 1, dataTextField: "name", dataValueField: "symbol" });}function StockInputChanged(sender) { var url='http://d.yimg.com/autoc.finance.yahoo.com/autoc?query='+ sender.value +'&callback=YAHOO.Finance.SymbolSuggest.ssCallback'; helper(url);}function helper(url) { var head = document.getElementsByTagName('head')[0]; var script = document.createElement('script'); script.type = 'text/javascript'; script.src = url; script.id = 'helperScript'; script.onload = cleaner; head.appendChild(script);}function cleaner() { $('#helperScript').remove();}{% extends "saloons/templates/base.html" %}{% from "ui/forms/macro.html" import wtform %}{% block content %} <form id="form1" method="POST" action=""> <br/><br/> <div id="total" align="right">Total de pedidos en soles: S/.<div id="num" style="display:inline"></div></div> <div id="fecha" align="left">Fecha: <input type="text" id="search_date" name="search_date" /> <button id="filter" name="filter" type="submit">Filtrar</button> </div> <br/><br/><br/><br/> <div id="grid-users" class="grid-content" style="text-align: center; width: 100%!important"> <table id="grid"> <thead> <tr> <th data-field="number" style="text-align: center">Nro.</th> <th data-field="item" style="text-align: center">Articulo</th> <th data-field="requester" style="text-align: center">Solicitante</th> <th data-field="client" style="text-align: center">Cliente</th> <th data-field="price" style="text-align: center">Precio</th> <th data-field="date" style="text-align: center">Fecha del Pedido</th> <th data-field="status" style="text-align: center">Estado</th> <th data-field="save" style="text-align: center">Guardar Estado</th> </tr> </thead> <tbody id="pedidos"> {% for i in orders %} <tr id="{{ i.id }}"> <td>{{loop.index}}</td> <td>{{ i.ItemName }}</td> <td>{{i.user()}}</td> <td>{{i.tab.user}}</td> {% if i.isInventory %} <td>S/. {{ i.ItemPrice }}</td> {% else %} <td><input type="text" id="price{{ i.id }}" value="{{ i.ItemPrice }}"/></td> {% endif %} <td>{{ i.dateOrder }}</td> <td> <select id="cmb{{ i.id }}"> <option value="PENDIENTE" selected="true">PENDIENTE</option> <option value="ATENDIDO">ATENDIDO</option> <option value="DENEGADO">DENEGADO</option> </select> </td> <td><a href="#" id="{{ i.id }}" rel="save">Grabar</a></td> </tr> {% endfor %} </tbody> </table> </div> </form> <script> $(function() { $("a[rel=save]").live('click', function() { var id = $(this).attr('id'); var p = $(this).parent().parent().find("td:eq(4)").html(); var p2 = p.substring(4, p.length); var p3 = parseFloat(p2); if (isNaN(p3) == true) { p3 = $("#price"+id).val(); } var a = $("#cmb"+id).val(); if (a == 'PENDIENTE') { alert('Debe cambiar el estado del pedido'); } else { var res = confirm("Está seguro de este cambio de estado?"); if (res){ $.post("check_order",{status : a, cod : id, price : p3, flag : true}, function(data) { var d = JSON.parse(data); if (!d.cancel){ $("#cmb"+id).parent().parent().parent().remove(); $("#pedidos tr").each(function(i, v){ if (i+1 > 0) { $(this).find("td:first").html(i+1); } }); $("#num").text(d.total); } else{ alert("El pedido que trata de actualizar ha sido cancelado. Refrescando pagina..."); parent.location.href = parent.location.href; } }); } } return false; }); $("#fecha").attr('class', 'k-header'); $("#fecha").css({'width' : '290px', 'float' : 'left'}); var f = new Date("{{ f }}"); $("#search_date").kendoDatePicker({ value: new Date(f), format: "dd/MM/yyyy", name: "search_date" }); $("#search_date").attr('readonly', 'readonly'); $("#grid").kendoGrid({ height: 460, sortable: false, columns: [{field:"number", width:40}, {field:"item", width:80}, {field:"requester", width:80}, {field:"client", width:80}, {field:"price", width:100}, {field:"date", width:100}, {field:"status", width:120}, {field:"save", width:80}] }); var arr = []; $('a[rel=save]').each(function(){ arr.push($(this).attr('id')); }); for(i =0; i<arr.length;i++) { $("#pedidos tr") .find("td:eq(4)") .children("#price" + arr[i]) .kendoNumericTextBox({ min:0, max:150, decimals:2, upArrowText:"Aumentar", downArrowText:"Disminuir", format: "c" }); } $("#total").css({'border-style' : 'solid', 'border-width': '3px', 'padding' : '10px', 'width' : '300px', 'float' : 'right', 'font-size' : '16px', 'font-weight' : 'bold'}); $("#num").text("{{ total_orders }}"); $("#total").attr('class', 'k-header'); //FIXME: El combo en KendoUI debe integrar las opciones originales del combo $("#pedidos tr").each(function(i,v) { $(this).find("td:eq(6)").children("select").kendoDropDownList(); }); setInterval(function(){ $("#grid-users").empty(); $.getJSON("/cafe/uco", function(json){ $("#grid-users").html(json.ord); }); console.log($("#grid")); $("#grid").kendoGrid({ height: 460, sortable: false, columns: [{field:"number", width:40}, {field:"item", width:80}, {field:"requester", width:80}, {field:"client", width:80}, {field:"price", width:100}, {field:"date", width:100}, {field:"status", width:120}, {field:"save", width:80}] }); var arr2 = []; $('a[rel=save]').each(function(){ arr2.push($(this).attr('id')); }); for(i =0; i<arr2.length;i++) { $("#pedidos tr") .find("td:eq(4)") .children("#price" + arr[i]) .kendoNumericTextBox({ min:0, max:150, decimals:2, upArrowText:"Aumentar", downArrowText:"Disminuir", format: "c" }); } $("#pedidos tr").each(function(i,v) { $(this).find("td:eq(6)").children("select").kendoDropDownList(); }); },10000); }); </script>{% endblock %}