私は似たようなウィジェット/ポートレットを持っています
<div id="100" class="portlets">
<iframe src="widgets/widget1_iframe.html"></iframe>
</div>
各iFrame内には別のiFrameがあります。複数のウィジェット/ポートレットを追加して注文できます。
私は(変更ごとに)最初のiFrameのSRC(この場合はwidgets / widget1_iframe.html)とiFrame内のiFrameのSRC(私のテストバージョンではユーザーに警告します)を取得するスクリプトを持っています。
したがって、前の例を使用して、次のようなものを作成するために新しい例を追加するとします。
<div id="200" class="portlets">
<iframe src="widgets/widget2_iframe.html"></iframe>
</div>
次に、2番目のものを最初のものの上に移動することにしました。私のスクリプトはwidgets/widget2_iframe.htmlを正しく表示しますが、iframe内のiframeには何も表示しません。次に、widgets / widget1_iframe.htmlが正しく表示され、そのiframe内のiFrameも表示されます。
チェックを行ったところ、ウィジェット/ポートレット内の(iframe内の)iFrameがDOMで使用できません。
したがって、基本的に、100個のポートレットを追加して1つ移動した場合、移動されたウィジェット/ポートレットのiframe内のiframeを除いて、すべての正しい情報が表示されます。以下は私のソート可能な関数の停止イベントです
stop: function (event, ui) {
var sortorder = '';
$('.' + opts.columnClass).each(function () {
var itemorder = $(this).sortable('toArray');
sortorder += itemorder.toString();
});
var substr = sortorder.split(',');
jQuery.each(substr, function () {
$.post("process.php", {
widget: $('div#' + this + ' div.widgetcontent iframe').attr("src"),
iframe: $('div#' + this + ' div.widgetcontent iframe').contents().find('iframe').attr("src")
}, function (data) {
alert("Data Loaded: " + data);
});
});
基本的に-移動されたウィジェット/ポートレットにiFrameの値が渡されていません