2012-01-23 134 views
1

我有一個PhoneGap的HTML5文件如下(只顯示頭部的一部分),如何處理多個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> 

有它定義像上面那樣工作正常。問題是我不想在我的html文檔中定義javascript。我希望它看起來像這樣,

<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文件夾中嗎?這聽起來像文件只是沒有被加載,如果你已經定義了那裏的功能。 – SoWeLie

+0

你的photo.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>