如何处理多个Javascript文件

时间:2012-01-23 01:51:26

标签: javascript html5 cordova

我有一个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>

如上所述定义的工作正常。问题是我不想在我的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

2 个答案:

答案 0 :(得分:1)

好的,所以我遇到的主要问题是我的photo.js文件中有错误。修复错误让我到了一个工作的地方。

我认为这个问题还有更多,但这就是为什么我在这里问了一个问题。在我将脚本内联之前,它也没有工作,让我觉得那里的脚本无法调用phonegap.cs中的代码。

事实证明它在我的电脑上的浏览器中不起作用,但在实际的Android和Android模拟器中它正在工作。

答案 1 :(得分:0)

检查一下:这是你的文件。你的导入

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