Javascript Phonegap—不包含';不要在文件名中包含.htm/.html

Javascript Phonegap—不包含';不要在文件名中包含.htm/.html,javascript,android,iphone,html,cordova,Javascript,Android,Iphone,Html,Cordova,使用Phonegap,使用以下代码以编程方式从一个页面切换到另一个页面非常简单: window.location.href = "someDestination.html"; 但是,我注意到,由于某种原因,如果目标文件的扩展名不是“.html”,那么这将不起作用。例如,以下代码: window.location.href = "someOtherDestination"; …将导致PhoneGap失败,并显示以下错误消息: 加载网页失败,错误为:帧加载中断 我认为PhoneGap足够智能,可

使用Phonegap,使用以下代码以编程方式从一个页面切换到另一个页面非常简单:

window.location.href = "someDestination.html";
但是,我注意到,由于某种原因,如果目标文件的扩展名不是“.html”,那么这将不起作用。例如,以下代码:

window.location.href = "someOtherDestination";
…将导致PhoneGap失败,并显示以下错误消息:

加载网页失败,错误为:帧加载中断

我认为PhoneGap足够智能,可以检查目标文件的内容以确定它是否是有效网页(例如,通过查找
标记),而不是试图依赖文件扩展名之类的多余信息。但事实似乎并非如此

所以我的问题是,为什么PhoneGap关心文件名是否以
.htm
/
.html
结尾,我如何让它不再关心这个问题

LOL:

function getHTMLFile(str) {
    return str + '.html';
}

function getHTMFile(str) {
    return str + '.htm';
}
;-)


不,但说真的,这是window.location.href规范的一部分。这不是PhoneGap特定的问题。您不能简单地用javascript覆盖它(请参阅)。

我也遇到了这个Cordova/Phonegap 3.0

在我的页面顶部有一个重定向。我知道,这不是“响应性设计”,而是一个很好的临时补丁,用于显示适合iPhone的UI

<script>
  if (navigator.userAgent.match(/(iPhone|iPod).*AppleWebKit/i)) {
    window.location = "iphone/";
  }
</script>

修复了错误

这是“规范的一部分”是什么意思?没有什么可以阻止您说出
window.location.href='/someServlet/someAction'当您要将浏览器重定向到某些动态HTML内容时。如果在
somePage
文件中有一些静态HTML内容,只要宿主服务器默认将响应内容类型设置为
text/HTML
,它也可以正常工作。因此,在提及当地资源时,应采用完全相同的方法。
window.location = "iphone/index.html";