JSFiddle - React, Tailwind, and code Playground
HTML
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<div id="drag" style="width:50px; height:50px;">test</div>
<iframe id="edit-frame" src="http://jsfiddle.net/cMfMq/show" data-bind="bindIframe: $data" style="height:100%; width:100%; border: 1px solid #d7d7d7;border-top:none;"></iframe>
JavaScript
$(function() {
var page = ko.observable('<div class="sim-row" style="background-color: #00ff00;"><div class="sim-col">test test test test test test</div></div>');
var frameMouseX = ko.observable();//{ x: -1, y: -1 };
var frameMouseY = ko.observable();//{ x: -1, y: -1 };
var initDragDrop = function () {
var iframe = $('#edit-frame').contents();
console.log('iFrame' + iframe);
iframe.find('.sim-row').droppable({
iframeFix: true,
drop: function (event, ui) {
console.log("dropped");
}
});
}
var resizeFrame = function () {
var contents = $('#edit-frame').contents();
$('#edit-frame').css('height', contents.height() + 'px');
}
ko.bindingHandlers.bindIframe = {
init: function (element, valueAccessor) {
function bindIframe() {
try {
var iframeInit = element.contentWindow.initChildFrame,
iframedoc = element.contentDocument.body;
} catch (e) {
// ignored
}
if (iframeInit)
iframeInit(ko, valueAccessor());
else if (iframedoc) {
ko.applyBindings(valueAccessor(), iframedoc);
}
};
bindIframe();
ko.utils.registerEventHandler(element, 'load', bindIframe);
}
};
var vm = {
title: 'Edit Page',
page: page,
initDragDrop: initDragDrop,
resizeFrame: resizeFrame,
frameMouseX: frameMouseX,
frameMouseY: frameMouseY
};
ko.applyBindings(vm);
$('#drag').draggable({
iframeFix: true,
...