我的javascript代码在pc上运行,但没有;t在android或ios上运行
my javascript code runs on pc but doesn't run on android or ios
我正在使用javascript用动态内容更新网页上的一些字段。它适用于所有的PC浏览器(我用Firefox、IE和Chrome测试过),但不适用于Android手机和iPhone。手机显示静态内容,但不显示javascript编写的值。
它可能与HTTP GET的回复消息的格式有关吗?我还没有在回复消息中包含HTTP头,只是原始数据。
我的js代码如下:
function get_datetime() {
var GetReq = false;
var hourText = document.getElementById("hour");
var minuteText = document.getElementById("minute");
var dayText = document.getElementById("day");
var monthText = document.getElementById("month");
var yearText = document.getElementById("year");
function GetValComplete() {
if (GetReq.readyState == 4) {
if (GetReq.status == 200) {
var time = GetReq.responseText.split(";");
hourText.value = time[0];
minuteText.value = time[1];
dayText.value = time[2];
monthText.value = time[3];
yearText.value = time[4];
}
}
}
if (window.XMLHttpRequest) {
GetReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
GetReq = new ActiveXObject("Microsoft.XMLHTTP");
}
if (GetReq) {
GetReq.open("GET", "/datetime?id=" + Math.random(), true);
GetReq.onreadystatechange = GetValComplete;
GetReq.send(null);
return true;
}
return false;
}
我的html代码是:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9" />
<title>date-time</title>
<script type="text/javascript" src="datetime.js"></script>
<style type="text/css">
.auto-style3 {
border: 1px solid #000000;
width: 100px;
}
</style>
</head>
<body onload="get_datetime();">
<br />
<h2><strong>date-time settings:</strong></h2>
<h2><strong></strong></h2>
<br />
<form id="form5" name="form5" method="post" action="">
<p><label for="hour">Hour</label>
<input name="hour" id="hour" class="auto-style3" type="text" /><label for="minute">Minute</label>
<input name="minute" id="minute" class="auto-style3" type="text" /></p>
</form>
<br />
<form id="form6" name="form6" method="post" action="">
<label for="day">Day</label>
<input name="day" class="auto-style3" id="day" type="text" /><label for="month">Month</label>
<input name="month" class="auto-style3" id="month" type="text" /><label for="year">Year</label>
<input name="year" class="auto-style3" id="year" type="text" /></form>
<br />
</body></html>
这是丢失的HTTP标头。携带动态内容的HTTP响应没有任何HTTP头。现在我手动添加了头(我不得不手动添加它,因为它是一个定制的系统),它工作了。
丢失的标题在PC浏览器上并不重要,但安卓/iOS显然不接受。
我看到你使用了一个特殊的字符集,这可能是问题所在吗?
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-9" />
没有理由关闭——试着把它拿出来。像这样:
function get_datetime() {
var GetReq = false;
function GetValComplete() {
if (GetReq.readyState == 4) {
if (GetReq.status == 200) {
var time = GetReq.responseText.split(";");
var hourText = document.getElementById("hour");
var minuteText = document.getElementById("minute");
var dayText = document.getElementById("day");
var monthText = document.getElementById("month");
var yearText = document.getElementById("year");
hourText.value = time[0];
minuteText.value = time[1];
dayText.value = time[2];
monthText.value = time[3];
yearText.value = time[4];
}
}
}
if (window.XMLHttpRequest) {
GetReq = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
GetReq = new ActiveXObject("Microsoft.XMLHTTP");
}
if (GetReq) {
GetReq.open("GET", "/datetime?id=" + Math.random(), true);
GetReq.onreadystatechange = GetValComplete;
GetReq.send(null);
return true;
}
return false;
}
相关文章:
- 在Android WebView中运行Javascript-onPageFinished循环
- 无法在 android 中运行 JavaScript for webview
- Meteor with Parse - 在 Android 设备上运行 - 未定义 Parse
- Cordova(Ionic):Splashscreen只在Android上运行一次
- 使用我在模拟器中创建的Canvas签名板,它运行良好,但在android设备中,两个签名板即将推出
- Html5画布动画在Android上运行缓慢
- 无法使用json数据url在android中运行实时股票图
- 运行代码以在Android应用程序中单击javascript按钮?尝试在页面上抓取回复按钮联系信息 craigslist
- 为什么 setSelectionRange 无法在 android 2.3 平台浏览器上运行
- Android - 如何在运行时生成的HTML数据中加载外部javascript文件
- 检测网站是在应用的 Android 浏览器还是网页视图中运行
- 如何安全地将字符串从 Web 视图活动传递到 Android 中正在运行的服务
- 应用在 AdMob Pro 代码后无法运行,但当相同的代码通过 Android 工作室通过 USB 调试器运行到同一部手
- 如何在Android上运行的PhoneGap中访问联系人的电话号码
- 在Phonegap(Java Android)中运行本机代码
- 运行反应原生 Android 应用程序 - BatchedBridge 时出错
- Sencha Touch应用程序在Android和iOS上运行良好,但在Windows 8.1上挂起
- 在 Android 浏览器中运行的页面在 Web View 中不起作用
- 如何在后台运行android phonegap应用程序(关闭应用程序后)
- Ionic运行android不工作