Как работать с несколькими файлами Javascript - PullRequest
1 голос
/ 23 января 2012

У меня есть PhoneGap HTML5-файл следующим образом (показывает только часть головы),

<head>
    <script type="text/javascript" src="Javascript/phonegap-1.3.0.js"></script>
    <!--<script type="text/javascript" src="Javascript/photo.js"></script>-->
    <script>
        function takePhoto()
        {
            alert("Take Photo");

            navigator.camera.getPicture(onSuccess, onFail, { 
                quality: 50, 
                destinationType: Camera.DestinationType.FILE_URI, 
                sourceType: Camera.PictureSourceType.CAMERA});
        }

        function onSuccess(imageData)
        {
            var image = document.getElementById('photoImg');
            image.src = "data:image/jpeg;base64," + imageData;
        }

        function onFail(message)
        {
            alert('Failed because: ' + message);
        }
    </script>
</head>

В теле у меня есть эта разметка,

<button onclick='takePhoto()'>Take Photo</button>

Определение, как указано выше, работает нормально. Проблема в том, что я не хочу определять JavaScript в моем HTML-документе. Я хочу, чтобы это выглядело так,

<script type="text/javascript" src="Javascript/phonegap-1.3.0.js"></script>
<script type="text/javascript" src="Javascript/photo.js"></script>

И пусть photo.js содержит метод takePhoto. Я не могу заставить его работать так. В консоли javascript я получаю сообщение об ошибке

Uncaught ReferenceError: takePhoto is not defined at file:///android_asset/www/index.html:81

Ответы [ 2 ]

1 голос
/ 23 января 2012

ОК, поэтому главная проблема, с которой я столкнулся, заключалась в том, что в моем файле photo.js была ошибка. Исправление ошибки привело меня к месту, где оно работало.

Я подумал, что это еще не все, поэтому я задал вопрос здесь. Раньше, когда у меня был встроенный скрипт, он тоже не работал, из-за чего я думал, что скрипт не смог вызвать код в phonegap.cs.

Оказывается, он не работает в браузере на моем ПК, но на реальном андроиде и в симуляторе андроида работает.

0 голосов
/ 23 января 2012

Проверьте это: вот ваш файл.js, который вы импортируете

// I changed it for the purposes of not intersecting any other library.
(function() {
    MyLibrary = {
        takePhoto: function() {
            // your code here
        }
    }
})()

Тогда ваш HTML-документ может сделать что-то вроде

<button onclick='MyLibrary.takePhoto()'>Take Photo</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...