2012-01-23 4 views
1

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

<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> 

И у меня есть фото.js метод takePhoto. Я не могу заставить его работать так. В моей консоли JavaScript я получаю ошибку,

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

Вы уверены, что файл JS существует в папке Javascript? Похоже, что файл просто не загружается, если вы определили там функцию. – SoWeLie

+0

Загружено ли ваше фото.js? Проверьте его с помощью консоли. Можете ли вы запустить команду с консоли? – buschtoens

+0

Не удается запустить команду с консоли, поэтому она не выглядит так, как будто она загружается. Но почему нет? Файл определенно существует. – peter

ответ

1

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

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

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

+1

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

+0

У меня такая же проблема. Можете ли вы, пожалуйста, рассказать больше о том, как вы его решили ... – LivingThing

0

Проверьте это: Вот ваш file.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> 
Смежные вопросы