如何在Web浏览器和XCode中使用JavaScript运行HTML文件?

如何在Web浏览器和XCode中使用JavaScript运行HTML文件?,javascript,iphone,html,cordova,xcode4.3,Javascript,Iphone,Html,Cordova,Xcode4.3,我想使用phonegap Cordova 2.0创建iPhone应用程序。现在,我编写了Javascript外部代码和HTML代码。然后我将JavaScript代码放入HTML5文件。现在我想在web浏览器上运行HTML文件。当我在浏览器中运行HTML时,Javascript不起作用。浏览器显示HTML中的任何内容。因此,请您帮助我在浏览器和XCode Phonegap中使用JavaScript运行HTML5文件 下面的代码是JavaScript代码     var bodyLoaded =

我想使用phonegap Cordova 2.0创建iPhone应用程序。现在,我编写了Javascript外部代码和HTML代码。然后我将
JavaScript代码放入HTML5文件
。现在我想在web浏览器上运行HTML文件。当我在浏览器中运行HTML时,Javascript不起作用。浏览器显示HTML中的任何内容。因此,请您帮助我在浏览器和XCode Phonegap中使用JavaScript运行HTML5文件

下面的代码是JavaScript代码

    

var bodyLoaded = function()
 {
    document.addEventListener("deviceready", onDeviceReady, false);
 }

    // Cordova is ready
    //
    function onDeviceReady() {
        var options = new ContactFindOptions();
        options.filter="";
        filter = ["displayName","organizations"];
        navigator.contacts.find(filter, onSuccess, onError, options);
    }

    // onSuccess: Get a snapshot of the current contacts
    //
    function onSuccess(contacts) {
        for (var i=0; i<contacts.length; i++) {
            for (var j=0; j<contacts[i].organizations.length; j++) {
                alert("Pref: " + contacts[i].organizations[j].pref + "\n" +
                        "Type: " + contacts[i].organizations[j].type + "\n" +
                        "Name: " + contacts[i].organizations[j].name + "\n" + 
                        "Department: "  + contacts[i].organizations[j].department + "\n" + 
                        "Title: "  + contacts[i].organizations[j].title);
            }
        }
    };

    // onError: Failed to get the contacts
    //
    function onError(contactError) {
        alert('onError!');
    }

var bodyLoaded=函数()
{
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}
//科尔多瓦准备好了
   //
函数ondevicerady(){
var options=new ContactFindOptions();
选项。过滤器=”;
过滤器=[“显示名称”,“组织”];
navigator.contacts.find(过滤器、onSuccess、onError、选项);
   }
//onSuccess:获取当前联系人的快照
   //
成功时的功能(联系人){
对于(var i=0;i首先,尝试:

<body onload='alert(1);' ...>

它的反应是否正确。然后继续:

var bodyLoaded = function() {
    document.addEventListener("deviceready", onDeviceReady, false);
}

<body onload='bodyLoaded();'>
var bodyload=function(){
文件。添加的监听器(“deviceready”,OnDeviceraddy,false);
}

好的,您正在开发PhoneGap应用程序

在PhoneGap中有一个称为“deviceready”的特殊事件,当PhoneGap完全加载时触发

在此事件触发之前,不要调用任何PhoneGap函数,这一点非常重要。这些函数可能尚未加载

你的问题是:

  • 您正在尝试在浏览器中测试javascript。PhoneGap提供从手机到应用程序的服务。由于您是从web浏览器运行它,因此没有手机提供服务。您不能简单地在web浏览器中运行应用程序

  • 您没有引用phonegap.js。phonegap有一个javascript部分,必须加载该部分才能使应用程序正常工作。在您自己的脚本之前,应该有一行类似于
    (当然,文件名可能会因您使用的phonegap版本而异,它可以称为cordova.js)

  • 你的html包含一些愚蠢的东西。有3个开始正文标记。应该只有1个。你需要这样的html:

    <!DOCTYPE html>
    <html>
      <head>
      <meta charset="utf-8" /> 
        <title>Contact Example</title>
        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8" src="Contectscript.js"></script>
      </head>
      <body onload="bodyLoaded();">
        <h1>Example</h1>
        <p>Find Contacts</p>
      </body>
    </html>
    
    
    联系方式
    例子
    查找联系人

  • 如何解决这些问题

  • 在XCode中开发。有一个内置的仿真器。它还为您提供管道。无需外部web浏览器。在您的问题中,您已经说过一些关于XCode的内容,因此这可能是一个不错的选择。请阅读这篇关于在那里设置和运行项目的文章:

  • 使用。它是一个专为在google chrome浏览器中模拟手机而设计的模拟器。它可以让您的应用程序相信它在您的手机内作为PhoneGap应用程序运行,并且手机的所有功能都可用,如加速计、gps等。它还可以为您模拟deviceready事件。:)

  • 就像在每个框架中一样,这是一个非常好的学习方法。有一个非常好的入门指南,你可以找到关于PhoneGap的每个问题的答案


    请阅读并研究我为您提供的链接。它将帮助您了解您正在尝试做什么。

    为什么一开始就设置window.location.href?为什么要使用javascript的绝对路径?@SoonDead我遵循了您的想法并再次尝试,但没有得到解决方案。我已编辑了我的问题。示例请看一看并帮助获取解决方案。提前感谢。您可以调试javascript吗?如果不可以,请尝试添加一些警报(“已达到”);行代码以查看到达的内容和未到达的内容。此外,我不确定web浏览器是否有“DeviceRady”事件?@SoonDead我遵循了您的想法,但没有得到解决方案。因此我编辑了我的问题并添加了完整的HTML源代码供您参考。请建议我在代码中犯了什么错误。提前谢谢。我很高兴我遵循了你的代码,但没有得到解决方案。因此,我编辑了我的问题,并添加了完整的HTML源代码供你参考。请告诉我我在代码中犯了什么错误。提前谢谢。不要同时添加它们:)。这只是确认触发了你的body onload(没有任何干扰)。因此,请先尝试一下,然后再尝试bodyLoaded函数。感谢您的回复。我已从HTML代码中删除,并在每个方法中添加了警报。但bodyLoaded只调用了,其他方法没有调用。我已在所有方法中添加了警报,如function OnDevicerady()、function onSuccess(contacts)但是这些方法没有调用。您能指导我解决这个问题吗?提前谢谢。
    <!DOCTYPE html>
    <html>
      <head>
      <meta charset="utf-8" /> 
        <title>Contact Example</title>
        <script type="text/javascript" charset="utf-8" src="phonegap.js"></script>
        <script type="text/javascript" charset="utf-8" src="Contectscript.js"></script>
      </head>
      <body onload="bodyLoaded();">
        <h1>Example</h1>
        <p>Find Contacts</p>
      </body>
    </html>