0

メニューをクリックして、剣道ウィンドウを開くことができました。

私の要件は、このウィンドウのボタンをクリックすると、動的に iframe を作成して div に追加し、この新しい div を親コンテナーに追加して、メニューから開くのと同じように新しいウィンドウとして表示する必要があるということです。

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();
    });
4

1 に答える 1

1

HTML 要素が含まれているにもかかわらず、ウィンドウがフローティングしていることがわかれば、別のウィンドウから開いたり、開いたウィンドウのコンテンツを動的に生成したりすることは非常に簡単です。

元のウィンドウを含む次の HTML コードがあるとします。

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

clickボタンのハンドラーを次のように定義します。

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

w2動的に生成された 2 番目のウィンドウ ( ) を最初のウィンドウの に追加し、containerそれを として初期化しますkendoWindow

次のようにして、最初のウィンドウに 2 番目のウィンドウを追加した可能性があります。

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

どこw1にありvar w1 = $("#menuDiv").data("kendoWindow");ますが、ウィンドウはその親 HTML ノードに制約されていないフローティング要素であるため、違いはありません。

ここで実際の動作を確認できます: http://jsfiddle.net/OnaBai/juunjch1/

また、開いたウィンドウの内容を にしたい場合は、オプションを に設定しiframeて を実際に作成する必要があります。何かのようなもの:windowiframetrue

$("#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/

于 2014-09-02T15:43:40.240 に答える