IE9、IE8、SVG、VML 和文档类型

2024-02-28

我正在我的 ASP.NET Web 应用程序中绘制形状。在 IE9 和其他浏览器中,我使用 SVG 来实现,效果很好。在 IE8 及以下版本中,我使用 VML。我发现 IE8 在 IE8 标准模式(不使用兼容性视图)下根本不显示 VML。

我的文档类型设置为<!DOCTYPE html>。如果我完全去掉文档类型,IE8 会进入怪异模式并且工作正常,但 IE9 然后会进入其怪异模式(而不是 IE9 标准)并且不显示 SVG。

这是在测试页面上发生的,因此除了包含 div 的表单(包含<svg>元素及其子元素或 VML 元素。

这里发生了什么?看来我不必为不同的浏览器更改文档类型,并且 Stack Exchange 用户页面上的信誉图似乎以相同的方式工作(IE8 及以下版本为 VML,其他所有人为 SVG,HTML5 文档类型)...


您还需要检查以下几件事:

行为规则的选择器需要修改。

  • 设置元素的尺寸或位置时,单位不默认为 px。必须明确指定它才能工作。
  • 您无法在 DOM 之外创建 VML 元素:

.

var vmlFrag = document.createDocumentFragment();
vmlFrag.insertAdjacentHTML('beforeEnd',
'<v:rect id="aRect" fillcolor="red"         
style="top:15px;left:20px;width:50px;height:30px;position:absolute;"></v:rect>'
);
document.body.appendChild(vmlFrag);
  • 矩形元素不会显示!你也不能修改它的 CSS,因为你可能会让浏览器崩溃。不过,有一个解决办法。将元素的outerHTML 复制到其自身中:

.

var aRect = document.getElementById('aRect');
aRect.outerHTML = aRect.outerHTML;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IE9、IE8、SVG、VML 和文档类型 的相关文章

  • 为什么 IE8 在我的图像锚标记上添加底部边框?

    我知道 这很可悲 但今天早上 IT 刚刚在我的机器上安装了 IE8 我立刻遇到了一个明显的问题 尽管我知道答案就在我面前 但我已经把它搞砸了太久了 首先 这是网站 www mchenry edu http www mchenry edu 在
  • SVG 到 Android 形状 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • IE Facebook 应用程序 iFrame 上的会话丢失

    当用户使用 Internet Explorer 时 我的 Facebook 应用程序出现问题 我的应用程序作为 Canvas 页面加载到 iFrame 中 回发后 Cookie 和 Session 将丢失 Firefox 根本不会发生这种情
  • 如果没有当前类的引用,svgLoader 无法工作

    这是我的主类 通过这个类 我通过 url 从 api 获取数据 并创建一个适配器类来维护它 但发生了意外错误 这是MainActivity java public class MainActivity extends AppCompatAc
  • 媒体查询跨帧泄漏

    这是一些 HTML The test html页面包含一些来自外部文件的 CSS 样式表有 media all and max width 600px body background color red 上面是简化的 但足以说明问题 两个页
  • 如何部分或仅按百分比沿路径过渡

    我是 d3 的初学者 目前无法使用最新版本 但我使用的是 3 x 版本 我想要实现的应该很简单 但遗憾的是我没有找到有关如何做到这一点的资源 目标是在我的 svg 中显示一条路径 然后我想显示例如一个圆并沿着路径过渡 移动 追踪圆 如果我想
  • `ie9` - contenteditable false 在父级可编辑时不起作用

    我正在尝试制作内容可编辑和不可编辑的容器 用户可以通过 3 种方式使用它 他们可以将内容与non editable 他们可以将内容与editable 他们可以在不选择其中之一的情况下放置内容 可编辑 我正在努力实现以下目标 content
  • Selenium RC上传文件

    我可以使用上传文件吗selenium RC在IE中 简短的回答是 一般来说你不能 http wiki openqa org display SEL Selenium Core FAQ SeleniumCoreFAQ Ican 27tseem
  • SVG 用事件触发动画

    如何通过 javascript 使用任意事件触发 svg 动画元素开始动画 我在想象类似的事情begin mySpecialEvent 然后我可以发送mySpecialEvent并且动画将开始 如果已经播放则再次开始 这是一篇涵盖您需要的文
  • jQuery 更改事件未在输入元素上触发

    首先 我检查了与我的问题类似的每个主题 不幸的是 我还没有找到答案 我尝试结合一些答案 但没有成功 注 刚开始学习jQuery 所以这是我的问题 我创建了一个带有四个文本输入和一个按钮的表单 每个输入内部都有一个 svg 图标和一个占位符文
  • d3.js:将样式应用于单行

    正在尝试可拖动网络 http bl ocks org mbostock 4566102并希望能够对不同的链接使用不同的颜色 当我注释掉这些行时 var link svg append g attr class link selectAll
  • 为什么我需要 $(document.body) 来使用 Mootools Element 方法扩展 document.body?

    因此 在尝试让我的应用程序在最新的 IE 上运行后 结果发现 IE 不喜欢以下代码 document body getElement className Firefox 和 Chrome 响应良好 但是document bodyIE 上没有
  • IE中100%高度超出屏幕的嵌套表格

    这是一段代码来说明我的问题 table width 100 height 100 tr td header td tr table
  • 使用 SVG 多边形元素

    我正在尝试使用 SVG 多边形和 javascript 我创建一个多边形并设置其初始点列表 如下所示 var polygon document createElementNS http www w3 org 2000 svg polygon
  • HTML
    标签在 IE/Edge 中不起作用

    我正在尝试添加用户可以显示和隐藏的附加可切换部分 我的要求 支持主要浏览器 Mac 上的 Opera Chrome Edge IE11 Firefox Safari 没有 JavaScript 并正在考虑使用
  • 如何发送包含 Blob 的 http 多部分 POST 请求?

    我正在使用 multipart XMLHttpRequest 在 Google Drive 帐户上上传文件 使用 google 文档中描述的语法 https developers google com drive web manage up
  • 使用 CSS 剪辑路径仅影响 webkit 浏览器中的第一个对象?

    我正在尝试使用 CSS 剪辑路径属性将 SVG 剪辑路径应用到页面中的某些元素 例如 HTML 请注意 clipPathUnits objectBoundingBox 允许以包含元素大小的分数表示圆 setTimeout function
  • Excel IE 自动化识别“css”元素

    仍然在抓取网站 从网页打印等方面进行掠夺 但遇到了一个障碍 我希望有人可以帮助我 下图显示了我想要激活的选项卡 我有代码可以到达那里 但无法激活该选项卡 虽然最后一行代码可以在我的台式电脑上运行 但我无法让它在我的其他电脑上运行 我可能可以
  • SVG 线条描边-dasharray 无法正确打印为 PDF

    打印行与stroke dasharrayPDF 创建不同的行为 请 看着那 这image https i stack imgur com doOku png here 图A 我直接从浏览器 Chrome 获取的屏幕截图 图B是同一页面的打印
  • 将 SVG 中的文本修剪为给定的像素宽度

    我正在 SVG 中绘制文本标签 我有一个可用的固定宽度 比如 200px 当文字太长时 如何修剪 理想的解决方案还会在文本被剪切的地方添加省略号 但没有它我也可以生活 使用 d3 库 溢出文本的包装函数 function wrap var

随机推荐