Phonegapを使用して、WebアプリケーションをAndroidアプリケーションに変換しようとしています。
アプリケーションは非常にシンプルです:html、javascript、css。論理的には単一のページであり、その内容は単純なjavascriptコード(外部ライブラリなし)によって変更されます。
問題は、javascriptが元のページに存在するアイテムに対してのみ機能することです。アイテムがjavascript関数の結果として表示され、別のjavascript関数が割り当てられている場合、その別の関数は実行されません。
理由は何でしょうか?そして、どうすれば状況を改善できますか?
アップデート:
問題は、デスクトップブラウザウィンドウでアプリが表示された場合、ドキュメントのform1プロパティが定義されていることです(ステップ3に表示されます)が、モバイルアプリの場合はそうではありません。
デモ:
<html>
<head>
<script type="text/javascript">
document.onclick = function( whichOne ){
whichOne = whichOne ? whichOne : window.event;
thisButton = whichOne.target ? whichOne.target : whichOne.srcElement;
if (thisButton.name) {
if (thisButton.value == 'Submit') {
if (undefined != document.form1){
alert("yes form1");
}
else {
alert("no form1");
}
}
else if (thisButton.name == 'b1') {
var iner ='<center>step 2</center>';
un1(thisButton.title,iner);
var oid=thisButton.title;
iner = t4a(oid,thisButton.name);
setTimeout( function() { un1(oid,iner);},1000);
}
}
}
function un1(id,iner){
var ele = document.getElementById(id);
ele.innerHTML = iner;
}
function t4a (id,ara){
var i;
var out="<form name='form1'><center>step 3<table border='1'>";
for (i=0;i < 2;i++){
out +="<tr><td align='left'>"+i+".</td><td align='right'><input type='text' name='f"+i+"'></td></tr>";
}
out+="</table><input type='button' name='a"+ara+"' title='"+id+"' value='Submit'
></center></form>";
return out;
}
</script>
</head>
<body>
<center>
<form >
<div id ="b1">
<input type="button" name="b1" title="b1" value="Butt">
</div>
</form>
</center>
</body>
</html>