Firefox drag and drop.Drag Operations
Table of contents.Drag-and-drop no longer working in FF | Firefox Support Forum | Mozilla Support
Mar 06, · Created using Peek. When I drag and drop to the Firefox icon in the launcher, nothing happens, it comes back. Update 2: Tried the DING solution from the suggested link. Added DING and disabled default desktop icons extension through both Tweaks and The result was duplicate icons on the desktop and the same no drag and drop. During a drop event, a listener would retrieve the data being dragged and insert it at the drop location. The drag data’s types property returns a list of MIME-type like DOMStrings, such as text/plain or image/jpeg. You can also create your own types. The most commonly used types are listed in the article Recommended Drag Types. Sep 18, · Firefox has a very annoying feature: when you click on address it selects all and defaults to drag and drop action instead of letting me select a section of that text as a normal text field would do. So in order to select and copy/paste a section of the URL i have to do a lot of additional clicks on the url until i get the desired result.
Firefox drag and drop.Drag Operations – Web APIs | MDN
Sep 18, · Firefox has a very annoying feature: when you click on address it selects all and defaults to drag and drop action instead of letting me select a section of that text as a normal text field would do. So in order to select and copy/paste a section of the URL i have to do a lot of additional clicks on the url until i get the desired result. Jul 11, · To recap: If you are logged into Windows as a user with administrative privileges, then Firefox will start with reduced (standard user / medium integrity) privileges to help protect against zero day vulnerabilities. If UAC is enabled normally, you should be able to drag-and-drop to the desktop or other folders/applications. Jun 18, · All drag-and-drop features stopped working on my FF That is, I can no longer: Drag items to bookmarks or rearrange the bookmarks – Drag words to the search box or links to the URL box – Change the order of tabs – Rearrange items on toolbars – Move text in text boxes – etc. Safe mode exhibits the same problems. Please advise.
File drag and drop
Firefox Quick Tip: Drag and drop URL text
Subscribe to RSS
Additional System Details
nautilus – Drag and Drop to Firefox in – Ask Ubuntu
The drag operations described in this document use the DataTransfer interface. In a web page, there are certain cases where a default drag behavior is used. These include text selections, images, and links. When an image or link is dragged, the URL of the image or link is set as the drag data, and a drag begins. For other elements, they must be part of a selection for a default drag to occur.
To see this in effect, select an area of a webpage, and then click and hold the mouse and drag the selection. An OS-specific rendering of the selection will appear and follow the mouse pointer as the drag occurs.
However, this behavior is only the default drag behavior, if no listeners adjust the data to be dragged. In HTML, apart from the default behavior for images, links, and selections, no other elements are draggable by default. The draggable attribute is set to “true” , so this element becomes draggable.
If this attribute were omitted or set to “false” , the element would not be dragged, and instead the text would be selected. The draggable attribute may be used on any element, including images and links. However, for these last two, the default value is true , so you would only use the draggable attribute with a value of false to disable dragging of these elements. Note: When an element is made draggable, text or other elements within it can no longer be selected in the normal way by clicking and dragging with the mouse.
Instead, the user must hold down the Alt key to select text with the mouse, or use the keyboard. In this example, a listener is added for the dragstart event by using the ondragstart attribute. When a user begins to drag, the dragstart event is fired. In this example the dragstart listener is added to the draggable element itself. Within the dragstart event, you can specify the drag data , the feedback image , and the drag effects , all of which are described below.
However, only the drag data is required. The default image and drag effects are suitable in most situations. All drag events have a property called dataTransfer which holds the drag data dataTransfer is a DataTransfer object. When a drag occurs, data must be associated with the drag which identifies what is being dragged.
For example, when dragging the selected text within a textbox, the data associated with the drag data item is the text itself. Similarly, when dragging a link on a web page, the drag data item is the link’s URL. The drag data contains two pieces of information, the type or format of the data, and the data’s value. When the drag begins, you add data by providing a type and the data. During the drag, in an event listener for the dragenter and dragover events, you use the data types of the data being dragged to check whether a drop is allowed.
During a drop event, a listener would retrieve the data being dragged and insert it at the drop location. You can also create your own types. The most commonly used types are listed in the article Recommended Drag Types.
A drag may include data items of several different types. This allows data to be provided in more specific types, often custom types, yet still provide fallback data for drop targets that do not support more specific types.
This data will be a simple textual representation. To set a drag data item within the dataTransfer , use the setData method. It takes two arguments: the type of data and the data value.
For example:. You can provide data in multiple formats. To do this, call the setData method multiple times with different formats. You should call it with formats in order from most specific to least specific. Here, data is added in three different types. Other applications won’t support this type, but you can use a custom type for drags between areas of the same site or application.
By providing data in other types as well, we can also support drags to other applications in less specific forms. This will often be true, but doesn’t need to be the case.
If you attempt to add data twice with the same format, the new data will replace the old data, but in the same position within the list of types as the old data. You can clear the data using the clearData method, which takes one argument: the type of the data to remove. The type argument to the clearData method is optional. If the type is not specified, the data associated with all types is removed.
If the drag contains no drag data items, or all of the items have been subsequently cleared, then no drag will occur. When a drag occurs, a translucent image is generated from the drag target the element the ” dragstart ” event is fired at , and follows the user’s pointer during the drag.
This image is created automatically, so you do not need to create it yourself. However, you can use setDragImage to specify a custom drag feedback image. Three arguments are necessary. The first is a reference to an image. The feedback image will be generated from whatever the image looks like on screen, although for images, they will be drawn at their original size.
The second and third arguments to the setDragImage method are offsets where the image should appear relative to the mouse pointer. It is also possible to use images and canvases that are not in a document. This technique is useful when drawing custom drag images using the canvas element, as in the following example:. In this example, we make one canvas the drag image.
When dragging, there are several operations that may be performed. The copy operation is used to indicate that the data being dragged will be copied from its present location to the drop location.
The move operation is used to indicate that the data being dragged will be moved, and the link operation is used to indicate that some form of relationship or connection will be created between the source and drop locations. You can specify which of the three operations are allowed for a drag source by setting the effectAllowed property within a dragstart event listener.
Note that these values must be used exactly as listed above. For example, setting the effectAllowed property to copyMove allows a copy or move operation but prevents the user from performing a link operation. If you don’t change the effectAllowed property, then any operation is allowed, just like with the ‘ all ‘ value. So you don’t need to adjust this property unless you want to exclude specific types. During a drag operation, a listener for the dragenter or dragover events can check the effectAllowed property to see which operations are permitted.
A related property, dropEffect , should be set within one of these events to specify which single operation should be performed. Valid values for dropEffect are none , copy , move , or link. The combination values are not used for this property. With the dragenter and dragover event, the dropEffect property is initialized to the effect that the user is requesting.
The user can modify the desired effect by pressing modifier keys. Although the exact keys used vary by platform, typically the Shift and Control keys would be used to switch between copying, moving, and linking. The mouse pointer will change to indicate which operation is desired. For instance, for a copy , the cursor might appear with a plus sign next to it. You can modify the dropEffect property during the dragenter or dragover events, if for example, a particular drop target only supports certain operations.
You can modify the dropEffect property to override the user effect, and enforce a specific drop operation to occur. Note that this effect must be one listed within the effectAllowed property. Otherwise, it will be set to an alternate value that is allowed. You can use the value none to indicate that no drop is allowed at this location, although it is preferred not to cancel the event in this case. Within the drop and dragend events, you can check the dropEffect property to determine which effect was ultimately chosen.
If the chosen effect were ” move “, then the original data should be removed from the source of the drag within the dragend event. A listener for the dragenter and dragover events are used to indicate valid drop targets, that is, places where dragged items may be dropped. Most areas of a web page or application are not valid places to drop data. Thus, the default handling of these events is not to allow a drop.
If you want to allow a drop, you must prevent the default handling by cancelling both the dragenter and dragover events. You can do this either by returning false from attribute-defined event listeners, or by calling the event’s preventDefault method. The latter may be more feasible in a function defined in a separate script.
Calling the preventDefault method during both a dragenter and dragover event will indicate that a drop is allowed at that location.
However, you will commonly wish to call the preventDefault method only in certain situations for example, only if a link is being dragged. To do this, call a function which checks a condition and only cancels the event when the condition is met. If the condition is not met, don’t cancel the event, and a drop will not occur there if the user releases the mouse button. It is most common to accept or reject a drop based on the type of drag data in the data transfer — for instance, allowing images, or links, or both.
To do this, you can check the types property of the event’s dataTransfer property. The types property returns an array of the string types that were added when the drag began, in the order from most significant to least significant.
If it is, we will cancel the event so that a drop may be allowed. If the drag data does not contain a link, the event will not be cancelled, and a drop cannot occur at that location. You may also wish to set either the effectAllowed , dropEffect property, or both at the same time, if you wish to be more specific about the type of operation that will performed.