I have observed that calling clipboardData.setData('text/uri-list', ...) after any other calls to clipboardData.setData() will result in a loss of data from the previous calls. Repro: http://jsfiddle.net/ufwcv0nw/ 1. Drag the top div and drop it anywhere. It specifies the data in an order with text/uri-lis first so nothing is over-written. 2. Drag the bottom div and drop it anywhere. It specifies the data in an order with text/uri-list last so everything is over-written.