我已经看到了从文件加载CSS和JavaScript动态的例子很多。 这里有一个很好的例子 。 但有一种方式来加载CSS或JavaScript作为一个字符串? 例如,是这样的:
var style = ".class { width:100% }"
document.loadStyle(style);
或者说,自然的东西。
我已经看到了从文件加载CSS和JavaScript动态的例子很多。 这里有一个很好的例子 。 但有一种方式来加载CSS或JavaScript作为一个字符串? 例如,是这样的:
var style = ".class { width:100% }"
document.loadStyle(style);
或者说,自然的东西。
var javascript = "alert('hello');";
eval(javascript);
这从一个字符串加载JavaScript,但被警告,这是非常不安全的,不推荐使用。 如果恶意程序曾经与你的JavaScript字符串的干扰,这可能会导致安全问题。
至于CSS的话,你可以使用jQuery,像这样追加的风格标签页面:
$('head').append("<style>body { background-color: grey; }</style>");
或者,JavaScript的纯粹主义者:
var s = document.createElement("style");
s.innerHTML = "body { background-color:white !important; }";
document.getElementsByTagName("head")[0].appendChild(s);
另一种方法不使用潜在危险eval
和innerHTML
是创造一个link
与base64编码URL元素:
function loadCSS(cssStyles) {
const link = document.createElement('link');
link.href = `data:text/css;base64,${btoa(cssStyles)}`;
link.type = 'text/css';
link.rel = 'stylesheet';
document.getElementsByTagName('head')[0].appendChild(link);
}