我正在使用带动态html的javascript生成iframe。 我的动态html看起来像 -
<head>
<style>
...
.bar {background-color: #EB593C;}
...
</style>
</head>
然后iframe将所有代码内容直到.bar {background-color: 在颜色代码html / css未包含在iframes内容中之后。
如果我用rgb或文本颜色名称替换十六进制颜色代码,那么这样可以正常工作。
但是我说html是动态的,所以我不能将所有的十六进制颜色代码替换成rgb或文本。
var iframe = document.createElement('iframe');
//var html = '<style>body {background-color: #EB593C;}</style><body>Foo</body>'; // not working
var html = '<style>body {background-color: red;}</style><body>Foo</body>'; // working
iframe.src = 'data:text/html;charset=utf-8,' + encodeURI(html);
document.body.appendChild(iframe);
请检查jsfiddle