1

嗨,我正在开发 phonegap 应用程序。如果我在 index.html 文件中使用 console.log ,那么它会打印,但如果我在另一个文件中使用它,它不会打印。如果假设我在 index.html 文件中导入文件,例如:

<!DOCTYPE html>

<html>

<head>  

    <link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.1.0.css" />
    <link rel="stylesheet" href="docs/assets/css/jqm-docs.css" />
    <link rel="stylesheet" href="docsdemos-style-override.css" />


    <script type="text/javascript" charset="utf-8" src="cordova-1.6.1.js"></script>             
    <script type="text/javascript" src="jquery.mobile/jquery-1.7.2.min"></script>       
    <script type="text/javascript" src="jquery.mobile/jqm.autoComplete-1.4.js"></script>    
    <script type="text/javascript" src="jquery.mobile/jquery.mobile-1.1.0.js"></script>

    <script type="text/javascript">

        console.log("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
    </script>

</head>

<body>

<div data-role="page" id="home" data-add-back-btn="true">
    <div data-role="content" >

        <a href="UI/Equity/test.html" data-role="button" id="myButton">index</a>            

    </div>
</div>



</body>
</html>

然后用按钮显示页面并打印!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!但是单击按钮时,它会显示 test.html 文件,如下所示:

<!DOCTYPE html>

<html>

<head>  

    <link rel="stylesheet" href="jquery.mobile/jquery.mobile-1.1.0.css" />
    <link rel="stylesheet" href="docs/assets/css/jqm-docs.css" />
    <link rel="stylesheet" href="docsdemos-style-override.css" />


    <script type="text/javascript" charset="utf-8" src="cordova-1.6.1.js"></script>             
    <script type="text/javascript" src="jquery.mobile/jquery-1.7.2.min"></script>       
    <script type="text/javascript" src="jquery.mobile/jqm.autoComplete-1.4.js"></script>    
    <script type="text/javascript" src="jquery.mobile/jquery.mobile-1.1.0.js"></script>

    <script type="text/javascript">

        console.log("@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
    </script>

</head>

<body>

<div data-role="page" id="home" data-add-back-btn="true">
    <div data-role="content" >

        <a href="#" data-role="button" id="myButton">Test</a>           

    </div>
</div>



</body>
</html>

但是这里不打印@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

4

2 回答 2

3

当您拥有跨不同 HTML 文件的 jQuery 移动“页面”时,框架所做的是抓取 data-role="page" 元素的内容并将其插入到当前页面的 DOM 中。

任何不在该 data-role="page" 元素中的内容都将被完全忽略。这意味着,实际上只有您点击的第一页(在本例中为 index.html)的头部中的脚本被下载并运行,这就是为什么需要在所有页面的所有头部中引用您的脚本的原因。

在这里查看PageCreate活动

或者

另一种选择是强制刷新页面,以便执行第 2 页中的脚本,您可以通过设置来执行此操作:

<div data-role="page" id="home" data-add-back-btn="true">
    <div data-role="content" >

        <a href="UI/Equity/test.html" data-ajax="false" data-role="button" id="myButton">index</a>            

    </div>
</div>

添加了 data-ajax="false"

于 2012-07-07T07:09:08.797 回答
1

您需要提供导入 javascript 文件的相对路径。您可能需要将其更改为 impo

假设来自 index.html 的 Test.html 的目录路径类似于

index.html
UI\Equity\Test.html 

<script type="text/javascript" charset="utf-8" src="../../cordova-1.6.1.js"></script>             
<script type="text/javascript" src="../../jquery.mobile/jquery-1.7.2.min"></script>       
<script type="text/javascript" src="../../jquery.mobile/jqm.autoComplete-1.4.js"></script>    
<script type="text/javascript" src="../../jquery.mobile/jquery.mobile-1.1.0.js"></script>
于 2012-07-07T06:59:07.380 回答