1

我在让基于 HTML 的 Adob​​e Air 应用程序正确运行时遇到了一些实际问题。我一直在 Aptana 中开发它,并在那里执行它是一种享受——没有任何错误。当我尝试通过 Chrome、Firefox(或者最重要的是)BlackBerry Playbook 模拟器运行相同的文件时,就会出现问题。当我尝试在任何这些环境中运行我的应用程序时,jquery 似乎没有运行。如果我使用 Chrome 检查元素并查看 .js 文件,则会出现两个错误 - “未捕获的类型错误 - 无法读取未定义的属性 'SQLConnection'”和“未捕获的类型错误 - 无法读取未定义的属性 '文件'。

知道什么通常会导致这些错误吗?HTML 文件是:

<html>
<head>
    <title>Application Sandbox sample</title>
    <link href="css/styles.css" rel="stylesheet" type="text/css"/>
    <script type="text/javascript" src="lib/jquery/jquery-1.5.js"></script>
    <script src="lib/air/AIRAliases.js" type="text/javascript"></script>
</head>

<body>
    <div id="container">
        <div id="topBar">
                <h2 class="tripbar_title">Tripbook logo</h2>
                <h2 class="tripbar_subtitle">Travel Tracking Made Simple</h2>
        </div>
        <div id="content">
            <div id="main">
                <ul id="navigation">
                    <a href="pages/menu.html" class="log_on_link"><li class="log_on_text">Log-on as <b class="first_name_text">First_Name</b> <b class="last_name_text">Last_Name</b> of <b class="company_name_text">Company_Name</b></li></a>
                    <a href="pages/register.html" class="register_link"><li class="register_link_text">Register a new user</li></a>
                    <a href="pages/switch_user.html" class="switch_user_link"><li class="switch_user_link_text">Switch Users</li></a>
                    <a href="pages/company.html" class="switch_employer_link"><li class="switch_employer_link_text">Switch Job</li></a>
                </ul>
            </div>
        </div>
        <div id="footer">
        </div>
    </div>
    <script type="text/javascript" src="lib/welcome.js"></script>
  </body>
</html>

并且 javascript 文件 (welcome.js) 开始:

// Bootstrap
$(document).ready(function(){
    SetupDB();
    displayMenu();
    SuggestUser();
});

var log_in_first;
var log_in_last;
var log_in_company; 
var db = new air.SQLConnection(); 


function SetupDB(){

    var dbFile = air.File.applicationStorageDirectory.resolvePath("tripbook_base.db"); 
    if (!dbFile.exists) { //
        var dbTemplate = air.File.applicationDirectory.resolvePath("tripbook_base.db");
        dbTemplate.copyTo(dbFile, true);
        }  //
        try {
            db.open(dbFile);
        } 
        catch (error) {
            air.trace("DB error:", error.message);
            air.trace("Details:", error.details);
        }
}
4

1 回答 1

0

符号“空气”未定义。因此声明:

var db = new air.SQLConnection(); 

不管用。我不知道那个“AIRAliases.js”文件是什么,但是如果您希望它为您定义符号“air”,它显然是行不通的。

编辑- 好的谷歌搜索“AIRAliases.js”表明它包含一些 Air 设施的“方便”重命名。因此,这可能不是直接的问题。我怀疑问题在于您试图将 HTML 和 JavaScript 直接加载到浏览器中,期望它能够使用它在 Air 中使用的工具。它不能。

于 2011-03-29T12:52:09.447 回答