如何使用jquery mobile重新加载外部javascript页面更改?

时间:2012-03-26 16:55:17

标签: javascript jquery ajax jquery-mobile

我在网站的移动版本中有几页使用谷歌位置服务。我正在使用changePage Ajax函数来浏览网站页面。在第一页加载位置服务正常工作,如果我去不同的页面,然后返回它没有。

当我添加rel="external"时,它可以正常工作,但问题是重新加载整个页面对桌面应用程序来说不是什么大问题,但在移动设备上看起来不太好。

我尝试将reloadPage = true添加到changePage,但它没有任何区别

有没有办法在不重新加载整个页面的情况下重新加载位置服务?

示例:

<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false" ></script>

$("#btn-loc").click(function () {
        $.mobile.changePage("#btn-loc", { reloadPage: true }, { transition: "slide" });
    });

1 个答案:

答案 0 :(得分:0)

当您使用reloadPage : true时,您必须引用外部页面的位置,而不是该伪页面元素的ID:

$("#btn-loc").click(function () {
    $.mobile.changePage("/btn-loc.html", {
        reloadPage : true,
        transition : "slide"
    });
});

还要注意我是如何传入options对象的,应该只有一个包含你想要在单个对象中设置的所有属性。

  

reloadPage 布尔,默认:false)

     

强制重新加载页面,即使它已经在页面容器的DOM中。

     
      
  • 仅在changePage()的“to”参数为URL时使用。
  •   

来源:http://jquerymobile.com/demos/1.1.0-rc.1/docs/api/methods.html

更新

要通过JS向DOM添加脚本,您可以使用Google的Google Analytics代码:

<script>
    (function() {
        var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
        ga.src = '/path/to/my-file.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
    })();
</script>