【求助】如何把一个div从一个浏览器窗口拖到另外一个浏览器窗口里。 无法实现但是可以使用frame做一个窗口引用然后利用frame的特性把DIV作为一个对象传过去 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 一个父窗口打开的不同窗口同域下是有可能访问彼此内部的DIV属性和内容,从而达到删除在一个窗口删除,在另一个窗口复制的效果;但让DIV在不同窗口间拖动就绝对是不可能的。 同意ls可以通过删除/添加的方法实现div的转移而且这两个页面存在着一定的关系,比如:父子关系、兄弟关系拖动,就是通过触发事件改变div的位置位置再怎么变,是不可能变到另外一个窗口去的 -_-!!亏lz想的出来...就好像问的把一个IE窗口拖到另外一台机一样... 这个不是我想出来的,是老板的要求。关于楼上说的使用frame的方法,我也考虑过,但似乎同样不能达到拖放的效果。还有一点我想和ls的说的是,通过改写activeX或者firefox extention实现从一个窗口拖到另外一个窗口并不是完全不可能的。 看来现在唯一的办法就只能自己用div做一个类似于pop-up window的东西了。或者还有什么其他的方法吗?请高手指点 WebForm1.html----------------<HTML><HEAD><title>WebForm1</title><script language="javascript"> function init() {window.document.body.attachEvent("onmouseover",bodyMouseOver);window.document.body.attachEvent("onmouseout",bodyMouseOut);drawDiv(); } function drawDiv() {var div = document.createElement( "<div id=div1 "+ " style=FONT-SIZE:12px;LEFT:0px;WIDTH:100px;POSITION:absolute;TOP:0px;HEIGHT:60px;BACKGROUND-COLOR:yellow"+ " onmousedown=mousedown()"+ " onmousemove=mousemove()"+ " onmouseup=mouseup()></div>");div.innerHTML = "hello world";document.body.appendChild(div); } var g_div1_tag = false; var g_div1_oldx = 0; var g_div1_oldy = 0; function mousedown() {g_div1_tag = true;g_div1_oldx = event.x;g_div1_oldy = event.y; } function mousemove() {if(g_div1_tag){var x = event.x;var y = event.y;document.all.div1.style.pixelLeft += x - g_div1_oldx;document.all.div1.style.pixelTop += y - g_div1_oldy;g_div1_oldx = x;g_div1_oldy = y;} } function mouseup() {if(g_div1_tag){g_div1_tag = false;} } function bodyMouseOut() {if(g_div1_tag){g_div1_tag = false;var relativeX = event.x - document.all.div1.style.pixelLeft;var relativeY = event.y - document.all.div1.style.pixelTop;var str = "";str += "<context>";str += "<from>FuWaer_WebForm1</from>";str += "<relativeX>"+relativeX+"</relativeX>";str += "<relativeY>"+relativeY+"</relativeY>";str += "<objectId>"+document.all.div1.id+"</objectId>";str += "<object>"+escape(document.all.div1.outerHTML)+"</object>";str += "</context>";clipboardData.setData("text",str);document.body.removeChild(document.all.div1);} } function bodyMouseOver() {try{var str = clipboardData.getData("text");var xmldoc = new ActiveXObject("MSXML2.DOMDocument");xmldoc.loadXML(str);var from = xmldoc.documentElement.childNodes[0].text;if(from=="FuWaer_WebForm2"){var relativeX = xmldoc.documentElement.childNodes[1].text;var relativeY = xmldoc.documentElement.childNodes[2].text;var objectId = xmldoc.documentElement.childNodes[3].text;var object = unescape(xmldoc.documentElement.childNodes[4].text);clipboardData.clearData();document.body.innerHTML += object;var div = document.getElementById(objectId);div.style.display = "none";div.style.pixelLeft = event.x - relativeX;div.style.pixelTop = event.y - relativeY;div.style.display = "";}}catch(e){} }</script></HEAD><body onload="init()"></body></HTML> WebForm2.html------------------<HTML><HEAD><title>WebForm2</title><script language="javascript"> function init() {window.document.body.attachEvent("onmouseover",bodyMouseOver);window.document.body.attachEvent("onmouseout",bodyMouseOut); } var g_div1_tag = false; var g_div1_oldx = 0; var g_div1_oldy = 0; function mousedown() {g_div1_tag = true;g_div1_oldx = event.x;g_div1_oldy = event.y; } function mousemove() {if(g_div1_tag){var x = event.x;var y = event.y;document.all.div1.style.pixelLeft += x - g_div1_oldx;document.all.div1.style.pixelTop += y - g_div1_oldy;g_div1_oldx = x;g_div1_oldy = y;} } function mouseup() {if(g_div1_tag){g_div1_tag = false;} } function bodyMouseOut() {if(g_div1_tag){g_div1_tag = false;var relativeX = event.x - document.all.div1.style.pixelLeft;var relativeY = event.y - document.all.div1.style.pixelTop;var str = "";str += "<context>";str += "<from>FuWaer_WebForm2</from>";str += "<relativeX>"+relativeX+"</relativeX>";str += "<relativeY>"+relativeY+"</relativeY>";str += "<objectId>"+document.all.div1.id+"</objectId>";str += "<object>"+escape(document.all.div1.outerHTML)+"</object>";str += "</context>";clipboardData.setData("text",str);document.body.removeChild(document.all.div1);} } function bodyMouseOver() {try{var str = clipboardData.getData("text");var xmldoc = new ActiveXObject("MSXML2.DOMDocument");xmldoc.loadXML(str);var from = xmldoc.documentElement.childNodes[0].text;if(from=="FuWaer_WebForm1"){var relativeX = xmldoc.documentElement.childNodes[1].text;var relativeY = xmldoc.documentElement.childNodes[2].text;var objectId = xmldoc.documentElement.childNodes[3].text;var object = unescape(xmldoc.documentElement.childNodes[4].text);clipboardData.clearData();document.body.innerHTML += object;var div = document.getElementById(objectId);div.style.display = "none";div.style.pixelLeft = event.x - relativeX;div.style.pixelTop = event.y - relativeY;div.style.display = "";}}catch(e){} }</script></HEAD><body onload="init()"></body></HTML> 谢谢楼上的,我试过了,可以工作,不过效果还是不能让人满意。主要是当鼠标移出窗口后,item会消失,直到放开鼠标后才会从新出现。我想我还是用div伪装一个window吧。但不管怎么谢谢了。分一会给你加上 求高手看看这段代码!为什么在不同浏览器运行出错 关于jsjac的问题 刚学javaScript,想找个人带带我 js 求一个新的array是两个二维数组的值的排列组合 在IE7中不能显示,在firefox中却可以。请大家帮忙看看!! javascript 控制边框 关于input type=file 取消路径问题 jQuery的$(function(){...})怎么理解 小问题 window.showModaldialog()问题 急急急--尋找幾個數組中的相同元素 js时间显示问题:math.round((nowtime/1000)%120%60)是什么意思??
可以通过删除/添加的方法实现div的转移
而且这两个页面存在着一定的关系,比如:父子关系、兄弟关系拖动,就是通过触发事件改变div的位置
位置再怎么变,是不可能变到另外一个窗口去的
亏lz想的出来...
就好像问的把一个IE窗口拖到另外一台机一样...
----------------
<HTML>
<HEAD>
<title>WebForm1</title>
<script language="javascript">
function init()
{
window.document.body.attachEvent("onmouseover",bodyMouseOver);
window.document.body.attachEvent("onmouseout",bodyMouseOut);drawDiv();
}
function drawDiv()
{
var div = document.createElement(
"<div id=div1 "+
" style=FONT-SIZE:12px;LEFT:0px;WIDTH:100px;POSITION:absolute;TOP:0px;HEIGHT:60px;BACKGROUND-COLOR:yellow"+
" onmousedown=mousedown()"+
" onmousemove=mousemove()"+
" onmouseup=mouseup()></div>");
div.innerHTML = "hello world";
document.body.appendChild(div);
}
var g_div1_tag = false;
var g_div1_oldx = 0;
var g_div1_oldy = 0;
function mousedown()
{
g_div1_tag = true;
g_div1_oldx = event.x;
g_div1_oldy = event.y;
}
function mousemove()
{
if(g_div1_tag)
{
var x = event.x;
var y = event.y;
document.all.div1.style.pixelLeft += x - g_div1_oldx;
document.all.div1.style.pixelTop += y - g_div1_oldy;
g_div1_oldx = x;
g_div1_oldy = y;
}
}
function mouseup()
{
if(g_div1_tag)
{
g_div1_tag = false;
}
}
function bodyMouseOut()
{
if(g_div1_tag)
{
g_div1_tag = false;var relativeX = event.x - document.all.div1.style.pixelLeft;
var relativeY = event.y - document.all.div1.style.pixelTop;var str = "";
str += "<context>";
str += "<from>FuWaer_WebForm1</from>";
str += "<relativeX>"+relativeX+"</relativeX>";
str += "<relativeY>"+relativeY+"</relativeY>";
str += "<objectId>"+document.all.div1.id+"</objectId>";
str += "<object>"+escape(document.all.div1.outerHTML)+"</object>";
str += "</context>";
clipboardData.setData("text",str);document.body.removeChild(document.all.div1);}
}
function bodyMouseOver()
{try
{
var str = clipboardData.getData("text");
var xmldoc = new ActiveXObject("MSXML2.DOMDocument");
xmldoc.loadXML(str);
var from = xmldoc.documentElement.childNodes[0].text;
if(from=="FuWaer_WebForm2")
{
var relativeX = xmldoc.documentElement.childNodes[1].text;
var relativeY = xmldoc.documentElement.childNodes[2].text;
var objectId = xmldoc.documentElement.childNodes[3].text;
var object = unescape(xmldoc.documentElement.childNodes[4].text);clipboardData.clearData();document.body.innerHTML += object;
var div = document.getElementById(objectId);
div.style.display = "none";
div.style.pixelLeft = event.x - relativeX;
div.style.pixelTop = event.y - relativeY;
div.style.display = "";}
}
catch(e)
{
}
}
</script>
</HEAD>
<body onload="init()">
</body>
</HTML>
------------------
<HTML>
<HEAD>
<title>WebForm2</title>
<script language="javascript">
function init()
{
window.document.body.attachEvent("onmouseover",bodyMouseOver);
window.document.body.attachEvent("onmouseout",bodyMouseOut);
} var g_div1_tag = false;
var g_div1_oldx = 0;
var g_div1_oldy = 0;
function mousedown()
{
g_div1_tag = true;
g_div1_oldx = event.x;
g_div1_oldy = event.y;
}
function mousemove()
{
if(g_div1_tag)
{
var x = event.x;
var y = event.y;
document.all.div1.style.pixelLeft += x - g_div1_oldx;
document.all.div1.style.pixelTop += y - g_div1_oldy;
g_div1_oldx = x;
g_div1_oldy = y;
}
}
function mouseup()
{
if(g_div1_tag)
{
g_div1_tag = false;
}
}
function bodyMouseOut()
{
if(g_div1_tag)
{
g_div1_tag = false;var relativeX = event.x - document.all.div1.style.pixelLeft;
var relativeY = event.y - document.all.div1.style.pixelTop;var str = "";
str += "<context>";
str += "<from>FuWaer_WebForm2</from>";
str += "<relativeX>"+relativeX+"</relativeX>";
str += "<relativeY>"+relativeY+"</relativeY>";
str += "<objectId>"+document.all.div1.id+"</objectId>";
str += "<object>"+escape(document.all.div1.outerHTML)+"</object>";
str += "</context>";
clipboardData.setData("text",str);document.body.removeChild(document.all.div1);}
}
function bodyMouseOver()
{
try
{
var str = clipboardData.getData("text");
var xmldoc = new ActiveXObject("MSXML2.DOMDocument");
xmldoc.loadXML(str);
var from = xmldoc.documentElement.childNodes[0].text;
if(from=="FuWaer_WebForm1")
{
var relativeX = xmldoc.documentElement.childNodes[1].text;
var relativeY = xmldoc.documentElement.childNodes[2].text;
var objectId = xmldoc.documentElement.childNodes[3].text;
var object = unescape(xmldoc.documentElement.childNodes[4].text);clipboardData.clearData();document.body.innerHTML += object;
var div = document.getElementById(objectId);
div.style.display = "none";
div.style.pixelLeft = event.x - relativeX;
div.style.pixelTop = event.y - relativeY;
div.style.display = "";}
}
catch(e)
{
}
}
</script>
</HEAD>
<body onload="init()">
</body>
</HTML>