【问题标题】:While testing a javascript I get redirected to HugeDomains-dot-com在测试 javascript 时,我被重定向到 HugeDomains-dot-com
【发布时间】: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


【解决方案1】:

停止drop的方法是使用ondragover。


        if (event.dataTransfer.getData("text") == "drag1") {
        document.getElementById("rectangle2").ondragover = "return false;"
        document.getElementById("rectangle4").ondragover = "return false;"
        }

像这样没有重定向。 “drag1”可以拖放到“rectangle1”和“rectangle2”中,但不能放到其他矩形中。如果用户尝试,它会滑回原来的位置。

现在的问题是它会永久禁用在这些矩形中的放置。我必须找出如何重新启用“drag2”。但这是另一个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-11
    • 1970-01-01
    • 1970-01-01
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多