Как работать с несколькими файлами Javascript

1

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

<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
  • 0
    Вы уверены, что файл JS существует в папке Javascript? Похоже, файл просто не загружается, если вы определили функцию там.
  • 0
    Ваш photo.js загружен? Проверьте это с помощью консоли. Можете ли вы запустить команду с консоли?
Показать ещё 2 комментария
Теги:
cordova

2 ответа

1
Лучший ответ

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

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

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

  • 1
    Это не сработает для вас в настольном браузере, так как нативный код, необходимый для камеры, не загружен. PhoneGap отображает методы JavaScript на собственный код на Android, iOS, BB, WP7 и т. Д.
  • 0
    У меня такая же проблема. Не могли бы вы рассказать больше о том, как вы решили это ...
0

Проверьте это: вот ваш файл.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>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню