【发布时间】:2013-09-07 03:26:27
【问题描述】:
以下代码只是“注入”到现有 iFrame ('iframe_id') 的 HTML、CSS 和 JavaScript 的组合。尽管以下代码适用于 Firefox、Chrome 和 Safari,但它不适用于 IE9。我检查了一些相关的和现有的答案,其中大多数与 IE8 或更早版本中的问题有关,这在这种情况下没有帮助。它与 jQuery .attr() 有关吗? IE9 是否存在问题(如旧 IE 版本)?如果是,我该如何解决?
$("#iframe_id").attr(
"src", "data:text/html;charset=utf-8," +
"<!DOCTYPE html>"+
"<html>"+
"<head>"+
"<style>"+
"/********** CSS stuff here **********/"+
"</style>"+
"</head>"+
"<body>"+
"<!--------- HTML stuff here ---------->"+
"<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js\"><" + "/script>" +
"<script>"+
"/*********** jQuery stuff here *****/"+
"<" + "/script>"+
"</body>"+
"</html>"
);
在 IE9 中,我收到典型的“无法显示网页...”错误。
我已经查看了以下答案,但这没有帮助。
【问题讨论】:
-
数据 uri 就是问题所在,请参阅stackoverflow.com/questions/12791952/…
-
可以肯定 IE9 不支持
data:text/html。 caniuse.com/#feat=datauri -
感谢您的链接。那么有没有办法可以重写上面的代码,使其适用于 IE9?
-
@Gandalf:您可以制作一个空白 iFrame,然后使用 JavaScript 更改其 HTML。检查我的答案。
-
@Gandalf:或者,你知道,使用 HTML 文件。
标签: javascript jquery html css data-uri