2012-03-06 8 views
1

PhonegapとJQMを使用して開発する方法を学びたいと思います。私のアプリは非常にシンプルです:jqm ajaxコールを使って人のリストを読み込みます。人がクリックされた場合、別のページに移動することになっています。phonegap + jqmエラー:「Uncaught SyntaxError:ファイルの予期しない識別子:///android_asset/www/index.html:2」

私は多くの方法で2番目のページをロードしようとしてい

1.-

 $.mobile.changePage($('myDiv')); 

2.-次加えることでことで

$.mobile.changePage('myPage.html'); 

3.-を追加することにより、次のリンクタグ内で通常のhrefを使用する

最後の1つは、f唇がひどくだから私は本当に私は、いくつかの遷移アニメーションを配置することができますJQM changePage、でそれをやってみたい、と私はリンクを押したとき、私はいつも「

E/Web Console(10922): Uncaught SyntaxError: Unexpected identifier at file:///android_asset/www/index.html:2" ERROR

任意のアイデア

EDITを得る:?私は、いくつかのテストの後で、アンカーでonclickイベントを使ってメソッドを呼び出すときにだけエラーが出ると確信しています。なぜ誰かがなぜそれを知っているのですか?これが起こっているのですか?

+0

ページのデータロールがページに設定されていますか? –

+0

はい、(divロードの例では)そうです。しかし、エラーは(エラーが投げられたために)phonegapによって作成されたようです。 – Th0rndike

+0

どのPhoneGapのバージョンを使用していますか? –

答えて

0

解決済み。エラーは、スクリプトでページを変更するために "onclick"イベントを使用した場合にのみ発生しました。 jqueryのライブ機能を使用し、 "クリック"イベントを聞いて、すべて正常に動作しました。私はまだ誰かがそれを知ってうれしいことを知っている場合、onclickイベントが私にエラーを与えた理由を見つけていない。助けようとした皆様に感謝します。作成時に

HTML::

<div id='listPage' data-role="page"> 

<div data-theme="e" data-role="header"> 
    <h1 >Anagrafica Tigre</h1> 
</div><!-- /header --> 

<ul id='anagList' data-theme="b" data-role="listview" data-inset="true" data-filter="true"> 

</ul> 

<div id='schedaPage' data-role="page"> 
<div id='schedaTitle' data-theme="e" data-role="header"> 
    <h1>Anagrafica Tigre part 2</h1> 
</div><!-- /header --> 
<ul id='schedaList' data-theme="b" data-role="listview" data-inset="true"> 
    <li id='dataNascita'> 
     <h3><strong>Data di nascita</strong></h3> 
     <p></p> 
    </li> 
    <li id='luogoNascita'> 
     <h3><strong>Luogo di nascita</strong></h3> 
     <p></p> 
    </li> 
    <li id='email'> 
     <h3><strong>Email</strong></h3> 
     <p></p> 
    </li> 

人口スクリプトWS呼び出しの後:

コードを望んでいる人々のための

仕事をDIDクリックリスナーのためのページロード後

function appendToList(theId,data){ 
    var myList = $('#anagList'); 
    var newItem = document.createElement('li'); 

    var newId = document.createElement('input'); 
    newId.setAttribute("type","hidden"); 
    newId.value=theId; 

    var newLink = document.createElement('a'); 
    //newLink.setAttribute("onclick","setPage("+newId+")"); //THIS IS THE EVENT THAT DIDNT WORK 
    newLink.setAttribute("href","javascript:void(0)"); 
    newLink.setAttribute("id",theId) 

    //newLink.setAttribute("href","schedaAnag.html"); 
    newLink.setAttribute("data-role","button"); 
    newLink.innerHTML=data; 

    newItem.appendChild(newId); 
    newItem.appendChild(newLink); 

    myList.append(newItem); 

    if(theId==149){ 
     $('#anagList').listview('refresh'); 
    } 

} 

スクリプト:

$('#anagList a').live("click",(function(){ 
     var theId=$(this).attr('id'); 
     callWS(parseInt(theId),parseInt(theId)+1,'scheda'); 
     //$('#schedaPage').listview("refresh"); 
     $.mobile.changePage($('#schedaPage')); 

    })); 
+0

ライブクエリで動作し、クリックしないと、DOMでボタンがまだ使用できないときにコールバックを登録しているようです。あなたはスクリプトコードを投稿できますか? – dhaval

0

$ .mobile.changePageは別のHTMLを表示しません。リンク先のHTMLのhtmlをスキャンし、最初のものを取得しますjqm 'page'を追加してdomに追加します(HTML全体ではありません) これはあなたが意図したものではなく、dom.hに完全なsomething.htmlをロードしたい場合は、どちらかを使用する必要があります

navigator.app.loadUrl("file:///android_asset/www/something.html") 

または

windows.location.href("file:///android_asset/www/something.html") 
+0

ページ(something.htmlと呼んでいます)にはデータロールページを含むDIVが含まれています。あなたの答えによると、それはそのDIVをロードする必要があります。代わりに、それは私に言及したエラーを与える。 – Th0rndike

+0

hmmm私は参照してください。同じページでdivを保持し、jqueryトランジションでdivを変更するだけです。 –

1

私はあなたの問題を解決するのに役立つかもしれない2つのページとgithubの中にサンプルプロジェクトを持っています。

https://github.com/dhavaln/phonegap-jqm

これは、スクリプトを使用して、ダイレクトリンクでページを変更する例が含まれています。

+0

ありがとうございます。私は実際にこの問題を解決することができましたが、私が使用したソリューションはあなたのプロジェクトで使用したものと同じでした。私は答えを1分で投稿します。 – Th0rndike

0

私のPhoneGap + jqMobileアプリはなく、全く別の理由で、また、このエラーメッセージを受け取りました。

私は動的にjavascriptのファイルにロードし、としてそれを宣言されました: <script id="sqlPlugin" src="" type="text/javascript"></script>

Chromeはこのことについてはコメントをしなかったが、Android上で、それは私のタイトルにエラーメッセージを与えました。 src=""属性を削除するだけで問題は解決されました。