使用JavaScript访问jQuery Mobile(子)页面的内容

时间:2011-02-11 20:06:14

标签: javascript jquery uiwebview jquery-mobile

我一直在尝试使用许多“标准”JavaScript DOM函数来访问HTML文档中的元素(getElementByIdgetElementsByName等),但我无法使用jQuery移动 - 加载子页面时,从getElementById("elementOfInterest").innerHTML返回的值仍包含母版页中的值。

我正在尝试在iPhone应用程序中实现这一点,在导航栏中提取并显示相应的子页面标题(页面显示在UIWebView中),但我认为(并希望)问题和解决方案或多或少“平台独立”。

任何想过如何使用JavaScript(或可能是一些jQuery函数)实现这一目标的人?但是我在jQuery Mobile Docs中找不到任何东西。

1 个答案:

答案 0 :(得分:2)

根据jQuery Mobile configuration的默认行为,它会在可能的情况下自动处理链接点击并通过Ajax表单提交。因此,当您打开新页面(子页面)时,新页面将附加到母版页的DOM。在此期间,您将松开写在新页面上的JavaScript。

根据我的想法,您可以禁用Ajax表单和链接。

为此,请编写如下链接:

<a href="createForm.htm" data-role="button" data-ajax="false">Create</a>

您也可以通过覆盖默认配置来为所有链接执行此操作:

<script src="/js/jquerymobile/jquery-1.5.min.js"></script>
<script type="text/javascript">
    $(document).bind("mobileinit", function(){
        $.mobile.ajaxEnabled= false;
    });
</script>
<link rel="stylesheet" href="/css/jquerymobile/jquery.mobile-1.0a3.min.css" />
<script src="/js/jquerymobile/jquery.mobile-1.0a3.min.js"></script>

在这两种方式中,痛苦的是,你将松开框架生成的后退按钮!

了解详情: http://jquerymobile.com/demos/1.0a3/#page.html&subpageidentifier

修改

要在新页面中添加后退按钮,您可以手动将其设置为:

<div data-role="header">
    <a href="../list.htm" data-icon="arrow-l" data-ajax="false">Back</a>
    <h1>
        List items
    </h1>
</div>