2012-12-20 22 views
6

Ho un'applicazione. In un pulsante cliccato ho provato ad aprire una finestra modale Kendo. Sta aprendo. La mia applicazione è in un dominio e il contenuto della finestra di Kendo proviene da un altro dominio. Ora voglio chiudere la finestra modale con un pulsante all'interno della finestra di Kendo. Qui inizia il problema. Non riesco a chiudere la finestra modale. Ho cercato usando Google ma non ho trovato alcuna soluzione - ne conosci uno?Come chiudere una finestra di Kendo dal contenuto della finestra?

risposta

4

Dopo aver letto i vostri commenti alla mia risposta precedente credo che si mette in discussione è fuorviante. Parli di modal, un altro dominio e closebutton ma dai tuoi commenti sembra che nulla di ciò sia effettivamente rilevante. Concludo dai vostri commenti che volete inserire uno button (in realtà un closebutton ma potrebbe essere qualsiasi altro) in un KendoUI window e inoltre si desidera visualizzare una pagina (che casualmente) si trova in un dominio diverso. Se questo è ciò che realmente desideri e prevedi il problema relativo al dominio incrociato e alla sicurezza, ti consigliamo di utilizzare effettivamente lo content.template e di definire un modello che includa lo button e un iframe che fa riferimento alla pagina www.xyz.com.

qualcosa di simile ...

var myWindow2 = $("#id2").kendoWindow({ 
    modal : true, 
    draggable: false, 
    content : { 
     template: '<a href="javascript:void(0);" id="close2" class="k-button">Close</a>' + 
       '<iframe src="http://www.xyz.com" frameborder="0" class="k-content-frame"></iframe>' 
    }, 
    visible : false, 
    width : 400, 
    height : 200, 
    resizable: false, 
    iframe : true 
}).data("kendoWindow"); 

$("#open2").on("click", function() { 
    myWindow2.center(); 
    myWindow2.open(); 
}); 

$("#close2").on("click", function() { 
    myWindow2.close(); 
}); 

si potrebbe anche fare il pulsante float in cima al resto della pagina definendo il seguente stile per closebutton.

#close2 { 
    position: absolute; 
    top: 10px; 
    left: 10px; 
    z-index: 10000; 
} 
+0

Caro Onabari, ti ringrazio tanto per la tua risposta. Ho capito che il pulsante di chiusura (nel contenuto della finestra di Kendo) non poteva chiudere la finestra. Devo fare il pulsante di chiusura nella finestra del kendo lato client (in alto o in basso) non nel contenuto della finestra di kendo. Grazie ancora. – Saikat

2

Il seguente codice JavaScript definisce uno button per l'apertura di modalkendoWindow. Una volta cliccato puoi premere uno button all'interno del corpo dello window per chiuderlo come desideri.

codice JavaScript:

var myWindow = $("#id1").kendoWindow({ 
    title : "hi", 
    visible: false, 
    modal : true 
}).data("kendoWindow"); 

$("#open").on("click", function() { 
    console.log("opening"); 
    myWindow.center(); 
    myWindow.open(); 
}); 
$("#close").on("click", function() { 
    console.log("closing"); 
    myWindow.close(); 
}) 

e la HTML:

<a href="#" id="open" class="k-button">Open</a> 

<div id="id1"> 
    <p>this is the content of my window</p> 
    <a href="#" id="close" class="k-button">Close</a> 
</div> 
+0

Grazie mille per la risposta OnaBari. Ma questa non è la vera soluzione del mio problema. Il contenuto del modale proviene da un altro dominio. e il pulsante di chiusura sarà all'interno del contenuto. Ora come chiudere questa finestra modale facendo clic sul pulsante. Se è lo stesso dominio non si verifica alcun problema. Ma la pagina madre e la finestra modale si trovano in un dominio diverso. – Saikat

+0

Come stai caricando il contenuto? Iframe' forse? – OnaBai

+0

window.kendoWindow ({ modal: true, animazione: false, trascinabili: false, contenuti: 'http://www.xxxx.com' larghezza: "830px", altezza: "650 px", ridimensionabile: false, // title: false, visible: false }). Dati ("kendoWindow"). Title (Title) .center(). Open(); – Saikat

Problemi correlati