2012-11-01 20 views
1

使用PhoneGap的是微不足道的以編程方式從一個頁面切換到另一種使用代碼線沿線的:的PhoneGap - 不包括HTML文件的.htm/html的文件名中的

window.location.href = "someDestination.html"; 

然而,我我們注意到,由於某些原因,如果目標文件的擴展名不是'.html',這將不起作用。例如,下面的代碼:

window.location.href = "someOtherDestination"; 

...會導致PhoneGap的失敗,並出現以下錯誤信息:

Failed to load webpage with error: Frame load interrupted

我本來以爲PhoneGap的是足夠的智能來檢查的內容目標文件以確定它是否是有效的網頁(例如,通過查找<html>標記),而不是試圖依賴文件擴展名等多餘的信息。但似乎並非如此。

所以我的問題是,爲什麼PhoneGap在意文件名是否以.htm/.html結尾,我該如何讓它停止關注這個?

回答

2

LOL:

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

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

;-)

沒有,但嚴重,這是window.location.href的規範的一部分。這不是PhoneGap特定的問題。您將無法簡單地使用javascript覆蓋此內容(請參閱this)。

+0

你的意思是它的「規範」的一部分的錯誤?沒有什麼能夠阻止你說'window.location.href ='/ someServlet/someAction';'當你想將瀏覽器重定向到一些動態的HTML內容。如果你在'somePage'文件中有一些靜態的HTML內容,只要託管服務器默認將響應內容類型設置爲'text/html',它就可以工作。因此,在提及本地資源時,完全相同的方法應該可以工作。 – aroth

0

我也遇到了這個科爾多瓦/ PhoneGap的3.0

靠近我的頁面頂部我有一個重定向。我知道,不是「響應式設計」,而是展示適合iPhone的UI的一個很好的臨時解決方案。

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

失敗,出現相同的錯誤。它更改爲

window.location = "iphone/index.html"; 

固定