2014-09-02 133 views
0

我可以通过点击菜单成功打开Kendo窗口。我需要的是,如果我点击这个窗口上的一个按钮,它应该动态创建一个iframe并附加到一个div并将这个新的div附加到父容器,并显示为一个新窗口,就像我打开它从菜单中。如何从其他窗口打开Kendo ui窗口?

我可以成功地将iframe和div添加到父级,但是当我打开窗口时,它在我所在的窗口内打开,而不是从父容器打开。我的代码如下:

$("#btn").click(function() { 

     var k = "<div id='kk'><iframe style='height:600px;width:900px'></div>"; 
     $("#menuDiv", parent.document).append(k); 

     $("#kk", parent.document).kendoWindow(); 
    }); 
+0

一个窗口内的窗口?你最终的目标是什么?也许有一个更简单的方法。 – OnaBai 2014-09-02 14:28:49

+0

嗨Onabai,我的菜单中包含一个子菜单,其中有100个不同的项目。如果我在菜单中显示它,它会看起来很丑。我的目标是将这些菜单项分开,并在网格中显示所有菜单名称,并且当单击它显示的一个项目时,就好像我单击了菜单项 – sony 2014-09-02 14:34:40

+0

中的一个,但不需要在另一个窗口内有一个窗口,或者与iframe一起使用。如果只是从另一个窗口打开请让我知道,我认为我可以帮助 – OnaBai 2014-09-02 15:03:11

回答

1

明知窗口,尽管包含它,从另外一个甚至动态生成打开的窗口中的内容打开这是很简单的HTML元素的浮动。

由于包含原始窗口下面的HTML代码:

$("#open").on("click", function() { 
    var w2 = $("<div>Window2</div>"); 
    $("#container").append(w2); 
    w2.kendoWindow({}); 
}); 

如果我们追加第二个窗口(w2)动态生成:

<div id="container"> 
    <div id="win1"> 
     <h1>Window 1</h1> 
     <button id="open" class="k-button">Open</button> 
    </div> 
</div> 

我们定义了一个click处理程序按钮到第一个窗口的container,然后我们将它初始化为kendoWindow

我们可能已经添加了第二个窗口的第一个是这样做的:

$("#open").on("click", function() { 
    var w2 = $("<div>Window2</div>"); 
    w1.element.append(w2); 
    w2.kendoWindow({}); 
}); 

哪里w1var w1 = $("#menuDiv").data("kendoWindow");但没有任何差别,因为窗口是浮动并不受限于它的父HTML节点元素。

你可以看到它在这里的行动:http://jsfiddle.net/OnaBai/juunjch1/

如果你想要那个打开的窗口中的内容是iframe你实际上应该与iframe设置选项true创建window。喜欢的东西:

$("#open").on("click", function() { 
    var w2 = $("<div>Window2</div>"); 
    $("#container").append(w2); 
    w2.kendoWindow({ 
     content: "http://www.telerik.com", 
     iframe: true 
    }); 
}); 

而且你可以在这里看到:http://jsfiddle.net/OnaBai/juunjch1/2/

+0

好的解决方案中使用剑道网格对它排序...感谢OnaBai – sony 2014-09-02 15:58:59