利用JS保持地址栏不变和语言跳转, 功能实现, 但细节不完美, 求解.

dibotiger 2013-03-14 03:13:38
目的:
1. 利用JS实现根据浏览器的语言版本实现不同页面的请求.
2. 利用JS实现不同页面请求后, 地址栏保持不变.

index.htm代码如下:

<!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=utf-8" />
</head>

<body>

<script>
function createXMLHttpRequest(){
if(window.XMLHttpRequest){
XMLHttpR = new XMLHttpRequest();
}else if(window.ActiveXObject){
try{
XMLHttpR = new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
try{
XMLHttpR = new ActiveXObject("Microsoft.XMLHTTP");
}catch(e){
}
}
}
}
function sendRequest(url){
createXMLHttpRequest();
XMLHttpR.open("GET",url,true);
XMLHttpR.setRequestHeader("Content-Type","text/html;charset=utf-8");
XMLHttpR.onreadystatechange = processResponse;
XMLHttpR.send(null);
}
function processResponse(){
if(XMLHttpR.readyState ==4 && XMLHttpR.status == 200){
document.write(XMLHttpR.responseText);
}
}
</script>

<script>
var type=navigator.appName
if (type=="Netscape")
var lang = navigator.language
else
var lang = navigator.userLanguage
if (lang.substr(0,5) == "zh-cn")
sendRequest("http://www.xxx.com/cn.htm")
else
sendRequest("http://www.xxx.com/en.htm")
</script>
</body>
</html>


cn.htm代码如下:
<head>
<meta http-equiv="Content-Language" content="zh-cn">
<link rel="Shortcut Icon" href="favicon.ico">
<style type="text/css">
.style1 {
text-align: center;
}
.style2 {
text-align: right;
}
</style>
</head>
<div class="style1">
<img src="images/LogoX.jpg"></div>
<p class="style1">中文页面</p>


en.htm代码如下
<head>
<meta http-equiv="Content-Language" content="EN">
<link rel="Shortcut Icon" href="favicon.ico">
<style type="text/css">
.style1 {
text-align: center;
}
.style2 {
text-align: right;
}
</style>
</head>
<div class="style1">
<img src="images/LogoX.jpg"></div>
<p class="style1">English Page</p>




基本的功能目标已经实现, 可问题是, 不同语言版本的页面在浏览器状态栏分别出现:

"正在下载图片 http://www.xxx.com/images/LogX.jpg..."
"Downloading Picture http://www.xxx.com/images/LogX.jpg..."

而实际上, 这个图片已经加载完毕了. 如果点击刷新一次,又都正常完成了?

...全文
429 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
dibotiger 2013-03-15
  • 打赏
  • 举报
回复
感谢回复, 不好意思继续追问. 先结贴给分. 遇到新的类似的问题,请帮忙继续回答. http://bbs.csdn.net/topics/390392979
  • 打赏
  • 举报
回复
既然得到了语言,设置document.title就可以修改index.html的浏览器窗口标题了 如果有很多页面,通过请求html得到title,可以再设置innerHTML前用正则获取title标签的内容设置document.title属性,然后替换掉title标签就行。
if (lang.substr(0,5) == "zh-cn"){
sendRequest("http://www.xxx.com/cn.htm")
document.title="中文"
}
else{
sendRequest("http://www.xxx.com/en.htm")
document.title="english"
}
var text=XMLHttpR.responseText;
document.body.innerHTML = text.replace(/<title>([\s\S]+?)<\/title>/ig
,function($0,$1){
document.title=$1;///设置title用的
return ''//返回空去掉返回的title标签
});
dibotiger 2013-03-14
  • 打赏
  • 举报
回复
引用 4 楼 showbo 的回复:
将style放到index。html中就行了。。 document.write输出style有用,设置innerHTML包含style没作用
哈哈, 感谢, WEB开发一窍不通. 所以只能依葫芦画瓢了. 按照你说的, 把style放入index.htm中. 把cn.htm和en.htm中的 <html> <head> <body>标签全部剔除. 现在可以居中显示了, 可还是剩下一个小问题: 我在cn.htm设置了:<title>中文</title> 我在en.htm设置了::<title>english</title> 但标题栏文字均不显示了? 是不是这个<title>标签也要移入index.htm? 问题是, 这个index.htm我需要如果修改才能适应不同的语言判断来设置不同的标题栏问题?
  • 打赏
  • 举报
回复
将style放到index。html中就行了。。 document.write输出style有用,设置innerHTML包含style没作用
dibotiger 2013-03-14
  • 打赏
  • 举报
回复
引用 2 楼 showbo 的回复:
不要再文档流关闭后使用document.write输出内容,这样会导致当前页面的内容被输出的内容覆盖,并且状态栏一直在加载。。 JavaScript code ? 12 //document.write(XMLHttpR.responseText); document.body.innerHTML = XMLHttp……
感谢回复, 按照你的提示修改了下, 状态栏的提示正常完成了. 但是出现了新问题, 也就是cn.htm或则en.htm中原来的的图片居中的样式不可用了. 也就是出现的图片不在是原来在中间的效果, 变成了左对齐.
  • 打赏
  • 举报
回复
不要再文档流关闭后使用document.write输出内容,这样会导致当前页面的内容被输出的内容覆盖,并且状态栏一直在加载。。
           //document.write(XMLHttpR.responseText);
            document.body.innerHTML = XMLHttpR.responseText;
cn.htm和en.htm删除<html>,<body>.<head>这种标签
Kilin_Zhang 2013-03-14
  • 打赏
  • 举报
回复
楼主为什么不把这个功能交给服务端去完成呢。 服务端根据条件加载不同View就行了啊。
内容概要:本文针对孤岛微电网在运行中面临的功率分配不均、电压频率波动等问题,提出了一种基于多智能体一致性演化的自适应虚拟阻抗容错控制与二次稳态补偿机制,并通过Simulink平台进行仿真实现。研究采用多智能体系统(MAS)框架,将各分布式电源建模为具备局部信息交互能力的智能体,利用一致性算法实现全局协同控制;结合自适应虚拟阻抗技术动态调节等效输出阻抗,有效克服线路阻抗差异导致的有功与无功功率耦合问题,提升功率均分精度;同时设计二次控制补偿环节,消除一次下垂控制引入的静态偏差,恢复电压和频率至额定水平。该机制具备良好的容错能力,在部分节点发生故障或通信中断时可自动重构控制结构,维持系统稳定运行,适用于高可靠性和自治性要求的孤岛微电网场景。; 适合人群:具备电力系统、自动化或电气工程等相关专业背景,熟悉微电网控制、多智能体系统理论及现代控制方法的研究生、科研人员及工程技术人员。; 使用场景及目标:①为孤岛微电网提供高精度、强鲁棒性的分布式协同控制解决方案;②解决传统下垂控制中存在的功率分配不准与电能质量下降问题;③实现系统在故障扰动下的自主容错与快速恢复,提升微电网的自愈能力与运行可靠性。; 阅读建议:建议读者结合Simulink仿真模型深入理解控制策略的实现细节,重点关注多智能体通信拓扑构建、一致性协议设计、虚拟阻抗自适应律以及二次补偿控制器的参数整定方法,同时可通过修改故障场景和通信条件进行对比实验,全面掌握该机制的动态响应特性与适应范围。
内容概要:本文围绕“2026年华为杯E题”展开,聚焦于复杂场景下的多模态情感识别问题,提供一套完整的数学建模与算法设计解决方案,涵盖解题思路、代码实现与论文撰写指导,并持续更新优化。该资源隶属于“荔枝科研社”这一综合性科研服务平台,内容涉及智能优化算法、机器学习与深度学习、图像处理、路径规划、通信技术、信号处理、电力系统管理等多个前沿技术领域,主要采用MATLAB和Python作为开发工具,强调对实际科研与竞赛问题的建模仿真与算法优化,具有较强的实践性和应用价值。; 适合人群:具备一定编程基础和科研能力,从事或有意参与数学建模、人工智能、自动化、电气工程等相关领域的研究生、高校学生及科研工作者,尤其适合备战“华为杯”等高水平学科竞赛的参赛者。; 使用场景及目标:①为“2026年华为杯E题”参赛者提供系统性的解题思路、高质量代码参考与论文写作模板;②支持科研人员在多模态情感识别、深度学习建模、智能优化等领域开展算法验证与系统仿真研究;③辅助高校教师教学与学生自主学习,提升复杂工程问题的建模能力与编程实践水平。; 阅读建议:建议读者结合提供的网盘资源与在线目录进行系统性学习,优先选择与自身研究方向契合的技术模块,动手运行并调试代码,尝试复现论文成果,同时关注微信公众号“荔枝科研社”以获取最新资料更新与技术动态。

87,984

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧