3 つの空のページ (appAnotado、appCompilado、appOriginal) を含む html ファイルがあります。
<div id="appAnotado" data-role="page" data-theme="a" data-content-theme="a">
<div id="divDestino" data-mini="true">
<div id="visoes" data-role="navbar">
</div>
<div id="divTexto" data-mini="true">
</div>
</div>
</div>
<div id="appCompilado" data-role="page" data-theme="a" data-content-theme="a">
<div id="divDestinoCompilado" data-mini="true">
<div id="visoesCompilado" data-role="navbar">
</div>
<div id="divTextoCompilado" data-mini="true">
</div>
</div>
</div>
<div id="appOriginal" data-role="page" data-theme="a" data-content-theme="a">
<div id="divAtoDestinoOriginal" data-mini="true">
<div id="visoesOriginal" data-role="navbar">
</div>
<div id="divTextoOriginal" data-mini="true">
</div>
</div>
</div>
これらのページには、3 つの外部 URL からの 3 つの ajax 呼び出しが含まれています。各ページはエイリアスに従って入力されます。
<script>
$(document).on('pagebeforeshow', "#appAnotado",function () {
var id = 10;
var formData = new FormData();
$.ajax({
url :'http://myApp.action?id=' + id + '&visao=anotado',
type : 'POST',
dataType : "html",
data : formData,
cache : false,
crossDomain: true,
processData : false,
contentType : false,
success : function(dados) {
$('#visoes').html(jQuery(dados).find('#visoes').html());
$('#divTexto').html(jQuery(dados).find('#divTexto').html());
},
error: function (xhr, textStatus, errorThrown) {
console.log("xhr.status: " + xhr.status);
}
});
$.ajax({
url :'http://myApp.action?id=' + id + '&visao=compilado',
type : 'POST',
dataType : "html",
data : formData,
cache : false,
crossDomain: true,
processData : false,
contentType : false,
success : function(dados) {
$('#visoesCompilado').html(jQuery(dados).find('#visoes').html());
$('#divTextoCompilado').html(jQuery(dados).find('#divTexto').html());
},
error: function (xhr, textStatus, errorThrown) {
console.log("xhr.status: " + xhr.status);
}
});
$.ajax({
url :'http://myApp.action?id=' + id + '&visao=original',
type : 'POST',
dataType : "html",
data : formData,
cache : false,
crossDomain: true,
processData : false,
contentType : false,
success : function(dados) {
$('#visoesOriginal').html(jQuery(dados).find('#visoes').html());
$('#divTextoOriginal').html(jQuery(dados).find('#divTexto').html());
},
error: function (xhr, textStatus, errorThrown) {
console.log("xhr.status: " + xhr.status);
}
});
});
</script>
ビュー (エイリアス) は navbar で定義されます。そして、このコードは外部 URL によってもたらされます。
<div id="visoes" data-role="navbar">
<ul>
<li><a id="anotado10" class="ui-btn-active" href="appAnotado" >Anotado</a></li>
<li><a id="publicado10" href="appCompilado" >Compilado</a></li>
<li><a id="original10" href="appOriginal" >Original</a></li>
</ul>
</div>
アプリケーションを実行すると、最初のページのみが表示されますが (これは正しい)、他のビュー (エイリアス) をクリックすると、一時的にメッセージが表示されます"error loading page"
.
プロパティを使用しようとしたrel = "external"
か、このjquerymobile.comdata-ajax = "false"
を見つけましたが、機能しませんでした。