我需要将元素从 iframe 外部移动到 iframe 中。我的元素面板不是 iframe 的一部分,但我的画布在 iframe 中并且想要将元素移入其中。
我试过下面的代码:
element_source = self._selenium.find_element(By.XPATH,
'//div[@class="gjs-block-label"][contains(.,"Tooltip")]')
element_target=self._selenium.find_element(By.CLASS_NAME,'gjs-frame')
actions = ActionChains(self._driver)
actions.drag_and_drop(element_source, element_target).perform()
time.sleep(5)
Run Code Online (Sandbox Code Playgroud)
看起来问题是我必须在移动元素之前切换到 iframe,但在这里我看不到这种可能性,因为 drag_and_drop 是组合方法,其中我的 element_source在 iframe 之外,element_target是 iframe 本身。
所以如果我在拖放之前切换,它甚至找不到element_source。
这是我正在处理的演示页面:https : //grapesjs.com/demo.html
在上面的演示中,左侧是 iframe,右侧面板是元素的集合。
我试图在父框架和子框架之间实现jQuery Draggable | Droppable | Sortable.我有一个这样的原型,但有一些奇怪的行为发生
win = document.getElementById('frame').contentWindow;
element = win.document.getElementById('sortable');
$(element).sortable();
console.log(element);
$( "#draggable" ).draggable({
connectToSortable: $(element),
iframefix: true,
helper: function() {return $("<div/>").css('background-color','red');}
});
Run Code Online (Sandbox Code Playgroud)
iframe页面还包含
$("#sortable").sortable();
Run Code Online (Sandbox Code Playgroud)
这是jsfiddle http://jsfiddle.net/vxAzs/5/
当我尝试将元素放在iframe上时,它工作正常,但是当我尝试对iframe上的元素进行排序时,元素会粘到我认为的两个页面的click事件上(所以在我点击两个父项之前它不会被删除和iframe).我认为这与父和iframe中的.sortable()调用有关,但如果我删除了droppable停止工作.
javascript jquery jquery-ui jquery-ui-sortable jquery-ui-draggable