I want to dynamically create an <a href="mailto:...">
element, then "click" it. All without modifying the page.
I'm trying this:
$('<a href="mailto:[email protected]"> </a>').click();
...to no avail
I want to dynamically create an <a href="mailto:...">
element, then "click" it. All without modifying the page.
I'm trying this:
$('<a href="mailto:[email protected]"> </a>').click();
...to no avail
Clicking on a link means changing window.location, so how about
window.location = "mailto:[email protected]";
Its not jquery, but it works just fine.
var link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
link.click();
link.download = url;
Otherwise, the xml file will be displayed in the browser. –
Ptomaine Clicking on a link means changing window.location, so how about
window.location = "mailto:[email protected]";
To make it work with jQuery, you first need to select the DOM element inside the jQuery object.
$('body').append('<a id="link" href="mailto:[email protected]"> </a>');
$('#link')[0].click();
Notice the [0]
fiddle: https://jsfiddle.net/fkwhvvhk/
click()
function don't invoke the DOM one's for each query item? –
Pome .click()
work with a DOM, not jQuery object
it should be:
$('<a href="mailto:[email protected]"></a>')[0].click();
jQuery
to avoid conflict with $: jQuery(<a href="/product-edit/${this.selected.id}"></a>
)[0].click(); –
Mayonnaise Try something like this...
Demo: http://jsfiddle.net/wdm954/xtTGX/1
$('.a').append('<a class="b" href="mailto:[email protected]"> </a>');
$('.b').click(function() {
window.location = $(this).attr('href');
}).click();
Yo can create the tag this way:
$('PARENT_TAG').append('<a id="dinamic_link" href="mailto:[email protected]"> </a>');
//Now click it
$('#dinamic_link').click();
HTH!
.click()
doesn't seem to work on /any/ link –
Volition why not just change the window location to the href of the link? Is there any specific reason you need to use a link?
Otherwise:
window.location = 'http://example.com';
I have been found some problems with a similar issue and I found the simplest way for me:
var link = document.createElement('a');
link.download = 'profile.png';
link.href = '...';
link.id = 'example';
link.class = '...';
document.body.appendChild(link);
link.click();
In my case I lost a lot of time trying to do this with jquery, doing $('#example').click()
but does not work for me. At least the problem was jquery, I did it without it. I hope that it can be help for somenone. Is a simple way to set an anchor to download an image and do click just after.
$('#something').append('<a id="link" href="mailto:[email protected]"></a>');
$('#link').trigger('click');
.click()
doesn't seem to work on /any/ link –
Volition I would say you should consider adding the href to a container (mostly div) using .append() and call .click()
$('parent_div').append('<a id="link" href="mailto:[email protected]"> </a>');
//Now click it
$('#link').click();
.click()
doesn't seem to work on /any/ link –
Volition It is not possible to simulate normal clicks. You can only trigger click
event handlers that have been bound to an element..
As @Alex has posted, you can change the window.location
to achieve the same effect..
Just been doing a tutorial on this!
$("[href='mailto:[email protected]']").click();
This should select all elements with a href attribute with "mailto:[email protected]" as its value.
www.w3schools.com/jquery/jquery_selectors.asp
you have to use .on and then call .click . Dynamically generated hyper reference does not work with simple .click()
If you want to use jQuery. This is basically the same answer as the answer from jBelanger:
$('body').append('<a id="link" href="mailto:[email protected]"> </a>');
$('#link')[0].click();
The problem is $('#link')[0] might not exist YET! You have to wait for it to be created. How to do that? I found the answer here. The following worked for me:
$('body').append('<a id="link" href="mailto:[email protected]"> </a>');
waitForElm('#link').then((elm) => { elm.click(); });
function waitForElm(selector) {
return new Promise(resolve => {
if (document.querySelector(selector)) {
return resolve(document.querySelector(selector));
}
const observer = new MutationObserver(mutations => {
if (document.querySelector(selector)) {
resolve(document.querySelector(selector));
observer.disconnect();
}
});
observer.observe(document.body, {
childList: true,
subtree: true
});
});
}
var link = document.createElement('<a>')
link.href = "mailto:[email protected]";
link.id = "hitme"
$('#hitme').click();
.click()
doesn't seem to work on /any/ link –
Volition var link = document.createElement('a')
for it to work properly. –
Subatomic © 2022 - 2025 — McMap. All rights reserved.