目前,我在一个拥有多种语言的大型网站上遇到了一个麻烦的问题。到达网站后,它会检测您所在的国家/地区并提示您确认。确认后,它会从数据库中交换页面语言并显示相关语言。这是使用jQuery完成的。现在问题是阿拉伯语读取rtl,所以我需要:
- 换掉“rtl”版本
的样式表或
- 更改HTML标记并添加“dir ='rtl'”arrtribute
现在,我已经尝试了这两种方法,两者都失败了。当我查看页面源时,它仍然显示没有“dir”属性的旧Css文件或HTML标记。如果我错了,请纠正我,但我相信这是因为DOM没有注册新的更改,因为它们在实例化DOM之后通过jQuery异步发生。
毕竟那个等等等等
有没有更简单的方法动态交换文本方向?如果这是一个DOM问题,我怎样才能在异步回调后重新加载DOM?
我现在已经在这个问题上工作了好几个小时,并且在interwebz上运气很少。
欢迎任何和所有帮助,非常感谢。
亲切的问候,
威廉弗朗西斯编辑:
经过大量调查后,我发现真正使用阿拉伯语方式的唯一方法就是回复。选择语言后,您会进行回发,然后只需从后面的代码更改样式表HREF属性。似乎没有任何形式的JavaScript或jQuery可以在没有回发的情况下更改它并仍然反映新的样式表。注意:您需要在每个回发后设置样式表HREF,即通过母版页。样式表更改不会在页面中保留。
这是一个帮助很大的网站,并使用JavaScript解释了很多关于样式表更改的内容。可悲的是,它对我没用。
答案 0 :(得分:0)
可能会发生一些事情。当我处理类似的事情时,我发现这个页面非常有用,所以我强烈推荐它:
http://www.w3.org/International/tutorials/bidi-xhtml/
此外,如果您还没有这样做,请使用Firebug之类的工具在AJAX运行后检查生成的DOM,以确保您看到DOM的更改状态而不是页面的初始源。 可以动态更改目录 - 您可以使用Firebug将新属性添加到此页面的HTML标记(设置dir =“rtl”)以查看其动态更改。可能是其他一些元素正在覆盖方向,可能是AJAX更改未正确加载或其他事情。如果您可以发布更多代码,那么给出更好的答案将会很有帮助,但我希望这会有所帮助。