0

ローカルファイルリンクでjquerymobileを使用しようとしていますが、正しく機能していません。ファインダーからページを開くと、最初のページを正常にロードできます。アドレスバーに完全なファイルパスが表示されます

    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

Ok, after some investigation, The issue is because JQuery and AngularJS was not working well together.

AngularJS uses hash tags to delimit routes for its controller.

jQueryMobile tries to be smart about handling hashes, which totally messes up the urls.

it's working now after I patched jquery mobile with my private fix. (as in disable hash handling).. It's working now.

于 2013-01-28T03:46:19.810 に答える
0

あなたが見逃している基本的なステップは、httpサーバーであなたのページを提供することです。

これは意図的なChromeの動作であり、ファイルシステム上のファイルへのajax呼び出しを制限します。

jQMアプリケーションを正常かつ効果的に開発できるようにするには、Webサーバーの1つをインストールして使用するだけです。どのプラットフォームにもたくさんあります。

推奨されていませんが、フラグで開始することでChromeにこれを許可させることができます

--allow-file-access-from-files --disable-web-security
于 2013-01-28T01:12:00.923 に答える