phonegap + jqm error: «Uncaught SyntaxError: Неожиданный идентификатор в файле: ///android_asset/www/index.html: 2» - PullRequest
1 голос
/ 06 марта 2012

Я пытаюсь научиться развиваться с помощью Phonegap и JQM.Мое приложение очень простое: оно загружает список людей с помощью вызова jqm ajax, и если кто-то нажимает на него, он должен перенести вас на другую страницу.

Я пытался загрузить вторую страницу разными способами.:

1.- Добавляя следующее

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

2.- Добавляя следующее

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

3.- Используя обычный href внутри тегов ссылки

Единственное решение, которое работает, - последнее, которое плохо работает.Поэтому я действительно хочу сделать это с помощью JQM changePage, который позволяет мне добавить анимацию перехода, и когда я нажимаю на ссылку, я всегда получаю «

E / Web Console (10922):Uncaught SyntaxError: Неожиданный идентификатор в файле: ///android_asset/www/index.html: 2 "ОШИБКА

есть идеи?

РЕДАКТИРОВАТЬ: я смог заставить его работать только с третьим методом (используя href внутри тега привязки).После некоторого тестирования я убежден, что ошибка появляется только тогда, когда я вызываю метод, использующий событие onclick в якорях.Кто-то знает, почему это происходит?

Ответы [ 4 ]

1 голос
/ 07 марта 2012

У меня есть пример проекта на github с двумя страницами, которые могут помочь вам решить проблему.

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

Содержит пример изменения страницы скриптом и прямой ссылкой.

0 голосов
/ 03 августа 2013

Приложение My Phonegap + jqMobile также получило это сообщение об ошибке, но по совершенно другой причине.

Я динамически загружался в файл JavaScript и объявил его следующим образом: <script id="sqlPlugin" src="" type="text/javascript"></script>

Chrome не прокомментировал это, но на Android он дал мне сообщение об ошибке в заголовке. Простое удаление атрибута src="" решило проблему.

0 голосов
/ 07 марта 2012

решаемая.Ошибка возникла только тогда, когда я использовал событие «onclick», чтобы изменить страницу скриптом.С помощью функции jquery live и прослушивания событий «click» все работало нормально.Я до сих пор не нашел причину, по которой событие 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:

    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 голосов
/ 06 марта 2012

$. Mobile.changePage не загружает другой HTML-код в поле зрения.он сканирует html в html, чью ссылку вы дали, получает первую jqm 'страницу' на нем и добавляет это в dom (не весь html), если это не то, что вы намеревались сделать, и хотели загрузить что-то полностью.html в дом, тогда вам придется использовать либо

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

, либо

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