1

Phonegapを使用すると、次の行に沿ったコードを使用して、プログラムで1つのページから別のページに切り替えるのは簡単です。

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

ただし、何らかの理由で、宛先ファイルの拡張子が「.html」でない場合、これは機能しないことに気付きました。たとえば、次のコードです。

window.location.href = "someOtherDestination";

... PhoneGapが失敗し、次のエラーメッセージが表示されます。

エラーでウェブページを読み込めませんでした:フレームの読み込みが中断されました

<html>PhoneGapは、ファイル拡張子のような余分な情報に頼るのではなく、宛先ファイルの内容を調べて、それが有効なWebページであるかどうかを判断するのに十分インテリジェントであると思いました(たとえば、タグを探すことによって)。しかし、そうではないようです。

だから私の質問は、PhoneGapがファイル名が.htm/で終わるかどうかを気にするのはなぜ.htmlですか、そしてどうすればこれを気にしないようにすることができますか?

4

2 に答える 2

2

笑:

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

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

;-)

いいえ、しかし真剣にこれは window.location.href の仕様の一部です。これは PhoneGap 固有の問題ではありません。これを単純に javascript でオーバーライドすることはできません (これを参照してください)。

于 2012-11-01T09:35:53.783 に答える
0

私もこの Cordova/Phonegap 3.0 に遭遇しました

ページの上部近くにリダイレクトがありました。「レスポンシブ デザイン」ではありませんが、iPhone に収まる UI を表示するための適切な一時的な修正です。

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

同じエラーで失敗しました。それをに変更する

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

エラーを修正しました

于 2013-07-31T17:46:27.293 に答える