【发布时间】:2011-08-16 05:16:44
【问题描述】:
我有一个在包括 iPad 在内的移动设备上运行的 HTML 5 应用程序。我想创建一个指向非 HTML 文件的链接,并打开适当的应用程序来处理该文件。这些文件是 .acsm 文件,可以在 Bluefire 中打开。
如果我将链接创建为一个简单的<a href="url"> 标签,它就可以工作。
如果我改为使用 Javascript 来设置 window.location,它就不起作用。 iPad 会弹出一条警报,提示“下载失败:无法下载此文件”。
我尝试过其他文件类型,但没有发现任何结论。简单链接和 Javascript 技术有什么区别?我可以让 Javascript 代码和链接做同样的事情吗?
如果特定的 Javascript 细节很重要,我会用 jQuery 这样做:
$('.native-launch').live('click', function (evobj) {
var there = $(evobj.target).attr('href');
window.location.href = there;
return false;
});
HTML 看起来像:
<span class="catalog-list-button native-launch" href="url">Read in another app</span>
(请注意,这是一个带 href 的跨度,如果有帮助,我可以更改 HTML。)
【问题讨论】:
-
您是否尝试过使用
window.open? -
@kei:好主意!不工作。 :( 它与 Javascript 代码相同:“下载失败”
-
如果你制作了一个加载 URL 的 iFrame 怎么办?
<iframe src="url"></iframe> -
我找到了这个。也许是你同样的问题。 stackoverflow.com/questions/4210995/…
-
您是否在回调中转储了
there变量?尝试使用window.location.assign(there);甚至setTimeout(function(){window.location.assign(there);}, 50);