js将完整的一段网页代码,以字符串的形式一下write进iframe后,easyUI的效果没有渲染出来
var doc = document.getElementById(this.containerId).contentDocument || window.frames[this.containerId].document;
var html = "<!DOCTYPE html>
<html lang="en">
<head>...</head>
<body>...</body>
</html> ";
doc.write(html);
没问题。。如果file测试注意不要使用chrome,访问不了iframe,要发布网站后通过http测试
<iframe id="myid"></iframe>
<script>
var s = '<html><head><link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/default/easyui.css">'
+ '<link rel="stylesheet" type="text/css" href="https://www.jeasyui.com/easyui/themes/icon.css">'
+ '<script type="text/javascript" src="https://code.jquery.com/jquery-1.9.1.min.js"><\/script>'
+'<script type="text/javascript" src="https://www.jeasyui.com/easyui/jquery.easyui.min.js"><\/script></head><body>'
+ '<a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-add" plain="true" onclick="newUser()">New User</a>'
+'<input class="easyui-filebox" label="File1:" labelPosition="top" data-options="prompt:\'Choose a file...\'" style="width:100%">'
+ '</body></html>'
var doc = document.getElementById('myid').contentWindow.document;
doc.open()
doc.write(s)
doc.close()
</script>
用innerHTML而不是write
为什么不用jsp页面写,这样以字符串的形式一下write一行一行太费事费力了。
你的问题是为什么没得easyUI的效果,你看看你导入JS,CSS文件的。还有看看浏览器。控制台的报错
我记得加入HTML不是用innerHTML吗?你把doc.write(html);改为doc.innerHTML(html);试下吧