Ric*_*ard 5 css jquery internet-explorer flot twitter-bootstrap
我试图在Bootstrap项目中使用Flot.我发现在IE8中,Flot图是不可见的,我将问题缩小到Bootstrap使用的HTML5垫片.
这是完整的页面:它是基本的Flot示例加上HTML5垫片,图形在IE8中是不可见的(在Chrome中很好).
如果我删除HTML5填充线,IE8中的图形就可以了.但是,我需要用于Bootstrap样式的HTML5填充程序(当我添加Bootstrap时 - 为了本例的目的我已经删除了对它的引用) - 如果它不存在那么Bootstrap样式就变得棘手了.
我能做什么?
<!DOCTYPE html><html lang="en">
<head>
<meta charset="utf-8">
<title>Flot Examples</title>
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!--[if lte IE 8]><script language="javascript" type="text/javascript" src="/scripts/plugins/excanvas.min.js"></script><![endif]-->
<script language="javascript" type="text/javascript" src="/scripts/jquery-1.7.1.min.js"></script>
<script language="javascript" type="text/javascript" src="/scripts/plugins/jquery.flot.js"></script>
</head>
<body>
<div id="placeholder" style="width:100%;height:300px;"></div>
<script type="text/javascript">
$(function () {
var d1 = [];
for (var i = 0; i < 14; i += 0.5)
d1.push([i, Math.sin(i)]);
var d2 = [[0, 3], [4, 8], [8, 5], [9, 13]];
var d3 = [[0, 12], [7, 12], null, [7, 2.5], [12, 2.5]];
$.plot($("#placeholder"), [ d1, d2, d3 ]);
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
html5shim和excanvas有点做我猜的同样的事情?excanvas模仿html5画布元素,html5shim做了一些我不太清楚的魔法.简而言之,当谈到IE <9和canvas元素时,你会想告诉html5shim.我在源头挖了一下,发现了这个信息.
所述
html5对象被暴露,使得更多的元件可以shived和现有shiving可以在内部框架被检测到.
在包含脚本之前可以更改选项html5 = {'elements':'mark section','shivCSS':false,'shivMethods':false};
在它列出所有将要"shiv"d的元素之后不久,所以我想出了这个解决方案:
<!--[if lt IE 9]>
<script type="text/javascript">
var html5 = { 'elements': 'abbr article aside audio bdi data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video' };
</script>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
Run Code Online (Sandbox Code Playgroud)
我从源头中取出的元素中的巨大列表,仅删除canvas.
除此之外,我使用了你所有的例子,似乎工作得很好.