【问题标题】:Drag-Drop disabling not working in Safari/Chrome WebKit Browsers拖放禁用在 Safari/Chrome WebKit 浏览器中不起作用
【发布时间】:2010-11-09 13:13:36
【问题描述】:

我在 iframe 中使用 document.designMode="on" 创建了一个富文本编辑器 Web 应用程序。 我希望文本的选择起作用,但希望禁用文本的拖放。 我试过这个:

evt.dataTransfer.effectAllowed="none";
evt.dataTransfer.dropEffect = "none";

这在 Firefox 中运行良好,但在 Safari/Chrome WebKit 浏览器中不起作用。 我试图把它放在每个事件中:dragover、dragstart、drag、dragenter 等。但无济于事..将 evt.preventDefault() 放入 mousedown 或 mouseup addEventListeners 会禁用我不想要的文本选择。请帮助...

【问题讨论】:

  • 感谢 Scott 漂亮的印刷!!

标签: javascript javascript-events


【解决方案1】:

好的,在这里我可以看到与我相同的问题,我上个月一直在处理这些问题,我很幸运能够通过反复试验来解决。我使用的是 Asp.net MVC 和 Safari,如果您理解我的意思,Chrome 不包括在视图中创建的脚本,这些脚本在母版页的标题中映射了内容占位符。

在您的场景中,您可能需要检查您的 javascript 是否在调用函数时成功调用。比如你添加一个库

确保它在标题上,当你尝试调用一个函数时,例如:

函数拖动(){

// 提醒证明这个Drag方法真的被调用了

alert("拖动方法被调用");

}

虽然警报很烦人,但使用警报将帮助您检查函数是否成功执行,但如果您明智地使用它,它肯定会帮助您进行调试。在大多数情况下,如果您可以将所有脚本放在标题部分中,这也是有帮助的,尽管有些情况是无法避免的。

这在我的 Safari/Chrome javascript 问题中对我有用。

如果对您有帮助,请投票。谢谢!

【讨论】:

  • 谢谢我做了这一切,不,它没有帮助......很高兴你在 14 岁就学会了这一切,但你正在努力做这件事有点难过当你应该在户外玩耍时编程......
猜你喜欢
  • 1970-01-01
  • 2015-11-19
  • 2013-08-02
  • 2015-05-06
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 2012-09-19
  • 1970-01-01
相关资源
最近更新 更多