我在使用 Windows Phone 8 和 Apache Cordova 3.0 进行页面导航时遇到一些问题。
我尝试了不同的方法来解决这个问题,但仍然不起作用。
起初我尝试使用表单导航到另一个页面。
<form action="CreateUser.html" method="get">
<input class="buttons" name="btnCreateUser" type="submit" value="Create User" />
</form>
当我点击按钮时,找不到页面。 CreateUser.html 页面位于同一目录中。如果我使用浏览器(Chrome/IE)它就可以了。
当我将操作更改为 http://www.google.com 时两个选项(浏览器和电话)都有效。
我还尝试使用 JavaScript 导航到另一个页面。这是我的代码:
function get(httpUrl) {
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", httpUrl, true);
xmlHttp.send(null);
return xmlHttp.responseText;
}
现在我使用按钮的 onclick="get("CreateUser")"事件,但没有任何反应。 在浏览器和移动设备上都可以。
唯一对我有用的是 window.location 功能。但似乎无法用这种方式转换下一页的信息。
是否有机会在这两个页面之间导航并传输一些信息?
或者我的代码有问题吗?
最佳答案
“CreateUser.html 页面”如果我没猜错的话,您正在使用 AJAX 读取文件(页面)内容并将其粘贴到 HTML 中?
如果是,请阅读以下内容:
2.1。跨域问题
在发出 AJAX 请求之前,您必须允许跨域请求和核心支持,方法是设置:
jQuery.support.cors = true;
$.mobile.allowCrossDomainPages = true;
这些必须在特定的phonegap函数“DeviceReady”中设置,例如:
document.addEventListener('deviceready', function () {
jQuery.support.cors = true;
$.mobile.allowCrossDomainPages = true;
$.ajax({
url: "www/about.txt",
dataType: 'text'
}).done(function (result) {
alert(result);
});
});
2.2。网址
制作面向 Windows Phone 8 的应用程序,在 AJAX 请求中您必须指定资源的完整路径,例如: 网址:“www/about.txt”,
制作面向 Windows Phone 8 的应用程序,在 AJAX 请求中您不得指定资源的完整路径,例如: 网址:“about.txt”,
2.3。源文件扩展名
请小心使用未知扩展名文件,例如模板扩展名 *.tpl 或类似文件。有时 AJAX 不喜欢它们,我建议使用简单的 *.txt 和 *.html 扩展名。
关于javascript - 使用 HTML/JavaScript/Apache Cordova 在 Windows Phone 8 上进行页面导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18007051/