【发布时间】:2021-02-27 16:38:10
【问题描述】:
function dragStart(event) {
event.dataTransfer.setData("Text", event.target.id);
}
function dragging(event) {
if (event.dataTransfer.getData("text") == "drag1") {
document.getElementById("demo").innerHTML = "drag1 moving";
document.getElementById("rectangle2").ondrop = "return false();";
document.getElementById("rectangle2").disabled = true;
}
if (event.dataTransfer.getData("text") == "drag2") document.getElementById("demo").innerHTML = "drag2 moving";
}
function allowDrop(event) {
event.preventDefault();
}
function drop(event) {
event.preventDefault();
var data = event.dataTransfer.getData("Text");
event.target.appendChild(document.getElementById(data));
document.getElementById("demo").innerHTML = "The p element was dropped";
if (event.dataTransfer.getData("text") == "drag1") document.getElementById("demo").innerHTML = "Drag1 moved";
if (event.dataTransfer.getData("text") == "drag2") document.getElementById("demo").innerHTML = "Drag2 moved";
}
.rectangle1 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid red;
}
.rectangle2 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid blue;
}
.rectangle3 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid green;
}
.rectangle4 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid purple;
}
<p>Drag the p element back and forth between the rectangles:</p>
<table>
<tr>
<td>
<div class="rectangle1" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
</td>
<td>
<div class="rectangle2" id="rectangle2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</td>
</tr>
<tr>
<td>
<div class="rectangle3" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
</td>
<td>
<div class="rectangle4" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</td>
</tr>
</table>
<p class="drag1" name="drag1" id="drag1" ondragstart="dragStart(event)" ondrag="dragging(event)" draggable="true">Drag 1</p>
<p class="drag2" name="drag2" id="drag2" ondragstart="dragStart(event)" ondrag="dragging(event)" draggable="true">Drag 2</p>
<p id="demo"></p>
我不知道为什么会这样。我正在测试一个小界面来学习如何禁用某些放置位置。我需要能够根据被移动的对象启用/禁用放置位置。对象 A 只能放在地点 1 和地点 2,对象 B 只能放在地点 3 和地点 4。
我在底部复制了整个代码,因此任何人都可以看到其中绝对没有提及 hugedomains-dot-com。你永远不知道,它可能对某人有用。相关函数是这个:
function dragging(event) {
if (event.dataTransfer.getData("text") == "drag1") {
document.getElementById("demo").innerHTML = "drag1 moving";
document.getElementById("rectangle2").ondrop = "return false();";
document.getElementById("rectangle2").disabled = true;
}
if (event.dataTransfer.getData("text") == "drag2") document.getElementById("demo").innerHTML = "drag2 moving";
}
我只是在尝试一些东西,试图找到正确的语法。
当我测试这段代码时,我被重定向到了 hugedomains-dot-com。更糟糕的是,我被提议购买域“drag1-dot-com”,我的对象的名称!!!我首先认为浏览器有问题。我重新安装了它:
sudo apt remove --purge firefox
sudo apt install firefox
没有变化。我安装了一个名为“Block Site”的附加组件。现在我被重定向到一个页面,说 hugedomains-dot-com 已被阻止。
我根本不想被重定向,我只想让我的“drag1”对象回到原来的位置,如果它掉到错误的地方(称为“rectangle2”)。
为什么会发生这种情况?我怎样才能阻止它?请帮忙。
这篇文章的其余部分是 html 页面的完整代码,可能对大多数读者来说无趣。
<!DOCTYPE HTML>
<html>
<head>
<style>
.rectangle1 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid red;
}
.rectangle2 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid blue;
}
.rectangle3 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid green;
}
.rectangle4 {
float: left;
width: 100px;
height: 35px;
margin: 15px;
padding: 10px;
border: 1px solid purple;
}
</style>
</head>
<body>
<p>Drag the p element back and forth between the rectangles:</p>
<table>
<tr>
<td>
<div class="rectangle1" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
</td>
<td>
<div class="rectangle2" id="rectangle2" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</td>
</tr>
<tr>
<td>
<div class="rectangle3" ondrop="drop(event)" ondragover="allowDrop(event)">
</div>
</td>
<td>
<div class="rectangle4" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
</td>
</tr>
</table>
<p class = "drag1" name = "drag1" id = "drag1" ondragstart="dragStart(event)" ondrag="dragging(event)" draggable="true">Drag 1</p>
<p class = "drag2" name = "drag2" id = "drag2" ondragstart="dragStart(event)" ondrag="dragging(event)" draggable="true">Drag 2</p>
<p id="demo"></p>
<script>
function dragStart(event) {
event.dataTransfer.setData("Text", event.target.id);
}
function dragging(event) {
if (event.dataTransfer.getData("text") == "drag1") {
document.getElementById("demo").innerHTML = "drag1 moving";
document.getElementById("rectangle2").ondrop = "return false();";
document.getElementById("rectangle2").disabled = true;
}
if (event.dataTransfer.getData("text") == "drag2") document.getElementById("demo").innerHTML = "drag2 moving";
}
function allowDrop(event) {
event.preventDefault();
}
function drop(event) {
event.preventDefault();
var data = event.dataTransfer.getData("Text");
event.target.appendChild(document.getElementById(data));
document.getElementById("demo").innerHTML = "The p element was dropped";
if (event.dataTransfer.getData("text") == "drag1") document.getElementById("demo").innerHTML = "Drag1 moved";
if (event.dataTransfer.getData("text") == "drag2") document.getElementById("demo").innerHTML = "Drag2 moved";
}
</script>
</body>
</html>
【问题讨论】:
-
在浏览器中尝试隐身/隐私模式。
-
谢谢。我还没有创建一个网站。我的硬盘上有这个页面,我用 Firefox 的“文件/打开”选项打开它。我尝试了 Konqueror(文件管理器和浏览器相结合)。好消息是它没有被重定向。坏消息是“drag1”被丢弃在“rectangle2”中。
-
我使用 Firefox 处于永久隐私浏览模式。 @Bravo,请问“那是一些糟糕的juju”是什么意思?我该怎么办?
-
访问 drag1.com 时,我被直接重定向到 hugedomains.com。我认为这是一个操作问题,当您拖动对象时,浏览器试图转到站点 drag1.com
-
这是第二个盒子 - 蓝色的盒子......
document.getElementById("rectangle2").ondrop = "return false();";导致它
标签: javascript html http-redirect