gpt4 book ai didi

javascript - 从父框架中拖动一个项目并将其放入子 iframe 中的可放置对象中

转载 作者:行者123 更新时间:2023-11-30 18:06:43 25 4
gpt4 key购买 nike

我试图将一个项目从父框架拖到一个可放置的元素中,但在一个 iframe 中。它在将项目放在同一帧中的可放置元素上时有效,但在跨帧尝试时,它什么都不做。

我已经多次尝试解决这个问题,但都没有成功。

这是父框架的代码:

<html>
<head>
<title></title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<style>
#draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
</style>
<script>
$(function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
});
</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
<p>Drag me to my target</p>
</div>

<div id="droppable" class="ui-widget-header">
<p>Drop here</p>
</div>
<iframe src="P1.html" width = "500px" height = "500px">
</iframe>

</body>
</html>

这是 iframe 的代码:

<html>
<head>
<title></title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.2/themes/smoothness/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js"></script>
<style>
#draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0; }
#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px; }
</style>
<script>
$(function() {
$( "#draggable" ).draggable();
$( "#droppable" ).droppable({
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
});
</script>
</head>
<body>
<div id="draggable" class="ui-widget-content">
<p>Drag me to my target</p>
</div>

<div id="droppable" class="ui-widget-header">
<p>Drop here</p>
</div>
</body>
</html>

最佳答案

不幸的是,框架是独立的窗口对象,因此您无法将对象从一个 DOM 树拖到另一个窗口的 DOM 树中。网页根据窗口 DOM 的当前状态呈现。当您四处拖动元素时,DOM 会发出重绘信号,网页会根据元素的样式重新呈现(在拖动的情况下,top 和 left 样式属性通常是罪魁祸首)。

当您的页面上有两个框架(或窗口对象)时(在这种情况下,一个在另一个框架内),您也有此 DOM 对象的两个完全独立的实例,因此,它的行为。当一个 DOM 位于另一个内部并一起执行一个更大的 DOM 渲染时,DOM 不会协作;它们是完全不同的范围(包括 JavaScript),并且以这种方式设计是有原因的(主要是为了安全,因为您可以将外部网站加载到嵌入式窗口/iFrame 对象中)。

关于javascript - 从父框架中拖动一个项目并将其放入子 iframe 中的可放置对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15646402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com