gpt4 book ai didi

jquery - 使自定义 HTML 元素可在 iframe 中放置

转载 作者:太空狗 更新时间:2023-10-29 13:15:18 25 4
gpt4 key购买 nike

我喜欢有一个列表,其中的元素可以放在类似于 this example 的 iframe 中的列表中。 .我通过 this thread 找到了一个可行的解决方案但就我而言,我需要 <li> 以外的其他元素的。

这是我的设置:

<div id="container">
<ul>
<li>To drop 1</li>
<li>To drop 2</li>
</ul>
</div>
<iframe id="frame" src=""></iframe>

和 iframe 内容:

<ul id="sortable">
<li>Element</li>
<li>Element</li>
<li>Element</li>
</ul>

如您所见here .

它甚至在更改 <ul> 时也有效和 <li><div> (exampleiframe)。

当我使用自定义标签时 it's working<foo><bar>标签,但我真正需要的是让它与 <modules> 一起工作和 <module>标签。

<foo id="sortable">  //WORKS!!
<bar>Element</bar>
<bar>Element</bar>
<bar>Element</bar>
</foo>

<modules id="sortable"> //DOESN'T WORK!!
<module>Element</module>
<module>Element</module>
<module>Element</module>
</modules>

这是 the fiddleiframe我实际需要做的事情。

所以基本上 draggablesortable 方法不适用于我的自定义 html 标签。 <foo> 之间有什么不同? , <bar><modules> , <module>

更新

这似乎只是 webkit 浏览器上的一个问题,因为它在 FF 上运行良好——还不能在 Windows 机器上测试。

当拖动元素时,它会创建一个“助手”,它会获得一些内联样式:

position:absolute;left:XXXpx;right:XXXpx;width:XXXpx;heightXXXpx;z-index:1000

而在 webkit 上它只会得到 position , leftright :

position:absolute;left:XXXpx;right:XXXpx;

最佳答案

尝试使用 HTML5 拖放

<script id="dnd">
function over(e) {
e.preventDefault();
}

function drag(e) {
e.dataTransfer.setData("text", e.target.dataset.id);
}

function drop(e) {
e.preventDefault();
var data = e.dataTransfer.getData("text");
e.target.appendChild(
parent.document.querySelector("[data-id='" + data + "']")
);
}

window.onload = function() {
var mods = document.querySelector("modules");
var script = document.getElementById("dnd");
var iframe = document.querySelector("iframe");
iframe.src = URL.createObjectURL(
new Blob(
["<!doctype html>" + script.outerHTML + mods.outerHTML]
, {"type": "text/html"}
)
);
}
</script>
<div id="container">
<ul>
<li data-id="1" ondragstart="drag(event)" draggable="true">To drop 1</li>
<li data-id="2" ondragstart="drag(event)" draggable="true">To drop 2</li>
</ul>
</div>
<modules ondrop="drop(event)" ondragover="over(event)">
<module>Element</module>
<module>Element</module>
<module>Element</module>
<style>
module, li {
border:1px solid #000;
display:block;
list-style:none;
margin:0;
padding:5px;
}
</style>
</modules>
<iframe src=""></iframe>

jsfiddle http://jsfiddle.net/zo2bx4f7/

关于jquery - 使自定义 HTML 元素可在 iframe 中放置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33214810/

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