我有一个工作的HelloWorld手机游戏程序,其中有jquery mobile,如下所述:http://jquerymobile.com/demos/1.1.0/docs/about/getting-started.html。我添加了一些javascript来试验Cross Origin Resource Sharing:
<script>
$(document).bind("pageinit", function() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.mobile.changePage("http://jquery.com");
});
</script>
这在模拟器(2.3)上运行良好,jquery.com通过jquery移动演示加载。但是,在实际的2.3 Android设备(T-mobile G2运行Cyanogen,Galaxy SII,Galaxy Player)上,changePage()调用什么都不做。
答案 0 :(得分:4)
在$.mobile.changePage()
函数中调用pageinit
函数听起来不错,因为这会导致无限循环。 $.mobile.changePage()
函数会初始化指定为target
参数的页面,因此每次拨打$.mobile.changePage()
时,您都会触发pageinit
个事件。
您可能希望在初始化jQuery Mobile之前绑定到mobileinit
事件以覆盖$.support.cors
变量:
<script src="jquery.js"></script>
<script>
$(document).bind("mobileinit", function() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.mobile.changePage("http://jquery.com");
});
</script>
<script src="jquery-mobile.js"></script>
相关文档:
答案 1 :(得分:1)
尝试使用mobileinit
代替pageinit
。因为你绑定的事件是普通的jQuery,而对于jQuery mobile,初始化事件是mobileinit。
The $.mobile.allowCrossDomainPages option must be set before any cross-domain request is made so we recommend wrapping this in a mobileinit handler
。