I have an HTML 5 app that runs on mobile devices including the iPad. I want to create a link to a non-HTML file, and have the proper application open to handle the file. The files are .acsm files, to be opened in Bluefire.
If I create the link as a simple <a href="url">
tag, it works.
If instead I use Javascript to set the window.location
, it doesn't work. The iPad pops an alert that says, "Download failed: This file cannot be downloaded".
I've experimented with other file types, and haven't found anything conclusive. What's the difference between the simple link and the Javascript technique? Can I make the Javascript code do the same thing as the link?
In case the specific Javascript details matter, I do it like this with jQuery:
$('.native-launch').live('click', function (evobj) {
var there = $(evobj.target).attr('href');
window.location.href = there;
return false;
});
and the HTML looks like:
<span class="catalog-list-button native-launch" href="url">Read in another app</span>
(Note that this is a span with an href, I can change the HTML if that would help.)
Location assign() Method location. replace("http://someUrl.com");
location. href and click() methods doesn't work on mobile phone. Bookmark this question.
Try window.open
, passing in "_self" as the target window name.
window.open(there, "_self");
Using "_self" is the critical part here, otherwise the popup blocker would intercept it. I'd test this, but I don't have a link to an acsm file.
Edit: Two more ideas:
Add a form to your page with a method of "GET" and an action of your acsm file. Exclude form fields unless they map appropriately to your URL.
<form id="acsm" method="GET" action="http://myserver.com/myfile.acsm"></form>
Then just submit your form with form.submit()
:
document.forms.acsm.submit();
And the other idea: Create a page on your server that does a server-side redirect to your acsm file. Then just use the usual location.href = url
to that server page.
create a new a tag and click it using jquery:
$("<a />").attr("href", there).click();
the a tag in this case will not be added to DOM, will only be used to simulate the click.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With