我想将一个小程序从一个div
元素移动到另一个div
元素而不重新加载它。我不想使用绝对定位。有没有办法做到这一点 ?
我试试这个,但它不工作:
<html>
<head>
<script type="text/javascript">
function toDiv1() {
var appletElt = document.getElementById('myApplet');
document.getElementById('div1').appendChild(appletElt);
}
function toDiv2() {
var appletElt = document.getElementById('myApplet');
document.getElementById('div2').appendChild(appletElt);
}
</script>
</head>
<body>
<div id ="myApplet">
<applet width="200" height="200"
codebase="http://mainline.brynmawr.edu/Courses/cs110/spring2002/Applets/Smiley/"
code="Smiley.class"
name="Smiley">
</applet>
</div>
<div id="div1"></div>
<div id="div2"></div>
<div>
<button onclick="toDiv1()">toDiv1</button>
<button onclick="toDiv2()">toDiv2</button>
</div>
</body>
</html>
你可以在这个小提琴上试试你的答案
@goldenparrot 提出的解决方案outerHTML
适用于所有浏览器(至少是 Firefox ESR)。
正如@kritzikratzi 答案和@biziclop 答案中所述,firefox 存在已知问题,即在 firefox 中重新加载 iframe、flash 对象、插件。
我认为(但我不确定)唯一的解决方案是使用绝对定位(@cuzzea)。但是,我问这个问题是因为我想找到另一种方式(“我不想使用绝对定位”)。这就是为什么我不会给予任何答复。
感谢您的贡献。