は、私はドラッグに走ったとGoogle Chromeで問題をドロップ:現在のフレームとの相対的な終了ドラッグ位置はどのようにして取得できますか?
foo.htmlという:
<iframe style="position:absolute;left:300px" src="bar.html"></iframe>
内容でbar.html:
<div draggable="true" id="bar">Drag me!</div>
<script>
document.getElementById("bar").addEventListener("dragend", function(e) {
console.log(e.view === window); // false
console.log(e.view === window.parent); // true
});
</script>
がなぜにe
相対的なものです(現在のフレームのwindow
のプロパティ)ではなく、親ウィンドウを使用していますか?私は、dragstart
とdragover
の両方が、現在のフレームに対してプロパティーをview
で受け取っていることを確認しました。
Hereサファリまたはクロムの問題を再現したものです。
編集:私のテストでは、私はフレームの外にドラッグを終了しません。
出力を現在出力しているものと比較することができますか? –
期待される出力は? –
あなたのdragstartは常にiframe内で発生するので、e.viewは常にiframeのdragstartのウィンドウと同じです。しかし、iframeの境界からドラッグすると、dragendはiframeの外側になり、e.viewはiframeの親であるウィンドウにドロップするようになります。この場合、ドラッグウインドウのe.clientXおよびe.clientYの位置は親ウインドウに対して正確になります。 – fmacdee