使用JQuery在移动应用程序中查看div中的网页时遇到问题

时间:2014-05-13 17:48:14

标签: javascript jquery html ios mobile

我的代码在计算机上查看网页时工作正常,但是当我使用带有xCode的模拟器或iPhone时,整个页面都无法加载。也许前10 - 25%的页面出现,其余的被切断。以下是代码示例。所有帮助表示赞赏!

HTML:

<!DOCTYPE html>
<html>
<head>
    <script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <style>


        object {
            width: 100%;
            min-height: 100%;
        }       


    </style>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no">

    <link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" type="text/css" />

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
    <script type="text/javascript" src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>

    <link rel="stylesheet" href="css/jquery-mobile-slide-menu.css" type="text/css" />
    <script type="text/javascript" src="js/jquery-mobile-slide-menu.js"></script>
    <script>

    function MyFunction(id) {
        var num=id;

        if (num == "foxnews") {
            $("#content").mobile.loadPage("http://m.foxnews.com");
        }
        if (num == "cnn") {
            $('#content').load('http://m.cnn.com');
            $('#content').trigger("pagecreate").trigger("refresh");
        }

        if (num == "home") {
            location.reload();
        }

        //$("#content").html('<object data="http://www.foxnews.com" />');
        //document.getElementById("content").innerHTML="<img src='Background.png'>";
    }
    </script>
</head>
<body>

    <div id="side-menu">
    <ul>
        <li><a id="home" href="" onclick="MyFunction(this.id);">Home</a></li>
        <li><a id="cnn" href="#" onclick="MyFunction(this.id);">&nbsp&nbsp&nbspCNN</a></li>
        <li><a id="foxnews" href="#" onclick="MyFunction(this.id);">&nbsp&nbsp&nbspFox News</a></li>
        <li><a href="/page-2/">Page 2</a><span class="icon"></span></li>
        <li><a href="/page-3/">Page 3</a><span class="icon"></span></li>
    </ul>
</div>
<div data-role="page" id="about-the-band" data-title="Page Title" data-theme="b" class="pages">
    <div data-role="header" data-theme="b">
        <a href="#" class="showMenu" data-role="button" data-icon="grid" data-iconpos="notext">Menu</a>
        <h1>Header</h1>
    </div>

    <div id="content" data-role="content">
        <p>Content Goes Here</p>
    </div>
</div>
<script type="text/javascript">
    $(function(){
        $('#side-menu').slideMenu();
    });
</script>
</body>
</html>

1 个答案:

答案 0 :(得分:0)

keyword:crossdomain

摘自已弃用的Jquery Mobile: &#34;当jQuery Mobile尝试加载外部页面时,请求将通过$ .mobile.loadPage()运行。如果$ .mobile.allowCrossDomainPages配置选项设置为true,这将仅允许跨域请求。&#34;

Load page to a div jQuery Mobile

$("#landingPage").live('pageinit', function() {
            jQuery.support.cors = true;
            $.mobile.allowCrossDomainPages=true;
        });

但也许我完全是错误的气味;但是你应该打开一个jsfiddle,否则就像在大海捞针一样。