IE10 - RTL逆转 - 如何解决?

时间:2013-05-21 08:47:25

标签: html internet-explorer internet-explorer-10 right-to-left

无法真正理解这个问题。 出于某种原因 - IE10以逆序呈现希伯来语。 如果我使用兼容模式(IE开发者工具,IE 10兼容模式)它工作正常... http://www.undergraduate.technion.ac.il/rishum/index.html

尝试了各种RTL修复(Css,dir属性等)

3 个答案:

答案 0 :(得分:2)

并非页面上的所有文字都按相反的顺序排列。似乎订单被颠倒的部分是在“希伯来语视觉”编​​码,ISO-8859-8中的框架页面中,即在希伯来文本以错误顺序写入的编码中。

对于页面http://www.undergraduate.technion.ac.il/rishum/entry.php,HTTP标头中没有可用的编码信息,页面包含使用未定义名称<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=VISUAL">的{​​{1}}(VISUAL是注册名称, ISO-8859-8是定义的同义词)。但似乎IE 10将编码识别为ISO-8859-8,它只是错误地实现了它。

在我的IE 10(Win 7)上,标准和怪癖模式下的顺序都是错误的。将“文档模式”(实际上是浏览器的文档呈现模式)设置为IE 9或IE 8不会改变这一点;在IE 7模式下,渲染是正确的。

很难说这个IE漏洞是否可以被规避。最好通过在整个过程中使用UTF-8编码来避免这个问题,即将文件重新编码为UTF-8并将编码声明为UTF-8。

答案 1 :(得分:1)

框架集中的内容是什么?使用框架集中的阿拉伯语内容我在IE10和IE11中看到了这个问题。似乎IE试图镜像enitre框架。

对我有用的解决方案是从顶部框架集中的开始html标记中删除dir属性,并在每个框架的内容页面中的开始html标记中设置dir =“rtl”。

所以在框架集中:

<html>

<frameset>
<frame src="frame_a.html">
<frame src="frame_b.html">
</frameset>

</html>

然后在框架frame_a.html:

<html dir="rtl">
<head></head>
<body>
    <p>لقد اطّلعت على هذا الدرس من قبل.هل تود العودة إلى آخر موضع اطّلععليه في الدرس؟</p>
</body>
</html>

答案 2 :(得分:0)

我不是RTL的专家,但考虑到它在兼容模式下工作,那么在短期内尝试添加

<meta http-equiv="X-UA-Compatible" content="IE=5">

从长远来看(或者如果不起作用),您需要考虑将页面重写为当前的HTML标准。你应该至少

  • 添加字符集声明(对HTTP标头而不是HTML),特别是因为这是希伯来语而不是基本ASCII。 (这也是我对RTL问题的帮助。)
  • 摆脱框架。框架是一种过时且过时的技术。
  • 更正HTML语法错误。
  • 使用CSS进行样式设计。
  • 摆脱链接的图形。 (我想阅读页面,但图片无法自动翻译。)

BTW,使用http://validator.w3.org/检查最差的错误。由于这是一个框架式网站,您需要单独检查每个框架文档。