Gan*_*alf 3 html javascript css jquery data-uri
以下代码只是HTML,CSS和JavaScript"注入"现有iFrame('iframe_id')的组合.虽然以下代码适用于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>"
);
Run Code Online (Sandbox Code Playgroud)
在IE9中,我得到典型的"网页无法显示..."错误.
我已经回顾了以下答案,但这没有帮助.
出于安全原因,数据URI仅限于下载的资源.
数据URI不能用于导航,脚本编写或填充框架或iframe元素.
这适用于所有版本的Internet Explorer.
要使其正常工作,您可以:
var html = "<!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>";
var frame = document.getElementById('iframe_id');
frame.contentWindow.document.write(html);
Run Code Online (Sandbox Code Playgroud)