0

我正在尝试将 jquery mobile 与本地文件链接一起使用,但它对我来说无法正常工作。从查找器打开页面时,我可以很好地加载初始页面。在地址栏中我看到完整的文件路径

    file://localhost/Users/me/[pathToMyApp]/www/index.html#/page1

但是,当我在 chrome 中按刷新,或者只是将页面 url 复制到另一个窗口时,我得到了错误

    Error loading Ajax Page  

我缺少一个基本步骤吗?

这是我的页面:

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="format-detection" content="telephone=no" />
    <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />

    <link rel="stylesheet" type="text/css" href="css/jquery.mobile-1.2.0.css" />

    <script type="text/javascript" src="cordova-2.2.0.js"></script>
    <script type="text/javascript" src="jquery-1.8.3.js"></script>
    <script type="text/javascript" src="jquery.mobile-1.2.0.js"></script>
    <script language="text/javascript">
        $(document).bind("mobileinit", function () {
                         $.mobile.ajaxEnabled = false;
                         $.mobile.ajaxLinksEnabled = false;
                         });
    </script>
    <script type="text/javascript" src="angular.js"></script>
    <script type="text/javascript" src="angular-resource.js"></script>
    <script type="text/javascript" src="js/myApp.js"></script>
</head>
<body>
    <div data-role="page">
        <div ng-view></div>
        <div data-role="footer" data-id="myFooter" data-position="fixed">
            <div data-role="navbar">
                <ul>
                    <li><a href="#" data-ajax="false">link1</a></li>
                    <li><a href="#" data-ajax="false">link2</a></li>
                    <li><a href="#" data-ajax="false">link3</a></li>
                </ul>
            </div><!-- /navbar -->
        </div>
    </div>
4

2 回答 2

0

您缺少的基本步骤是使用 http 服务器为您的页面提供服务。

这是 Chrome 的故意行为,它限制了对文件系统上文件的 ajax 调用。

为了能够正常有效地开发您的 jQM 应用程序,只需安装并使用其中一个 Web 服务器。任何平台都有很多。

不建议这样做,但您可以强制 chrome 通过使用标志启动它来允许您这样做

--allow-file-access-from-files --disable-web-security
于 2013-01-28T01:12:00.923 回答
0

好的,经过一番调查,问题是因为 JQuery 和 AngularJS 不能很好地协同工作。

AngularJS 使用哈希标签来为它的控制器划定路由。

jQueryMobile 试图巧妙地处理散列,这完全弄乱了 url。

在我用我的私人修复修补 jquery mobile 之后,它现在可以工作了。(如禁用哈希处理)..它现在正在工作。

于 2013-01-28T03:46:19.810 回答