Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以使用Django从JS文件中包含CSS(这里是棘手的部分)?_Javascript_Css_Django_Dom - Fatal编程技术网

Javascript 是否可以使用Django从JS文件中包含CSS(这里是棘手的部分)?

Javascript 是否可以使用Django从JS文件中包含CSS(这里是棘手的部分)?,javascript,css,django,dom,Javascript,Css,Django,Dom,据我所知,在动态JS文件中没有办法使用{%include%}来包含样式。但是我不想再打电话给服务器下载样式 也许可以通过获取样式表并将其注入文档的head元素……以前有人这样做过吗 我可以设想您希望动态生成JS或CSS的情况,但一般来说,您最好为每个JS或CSS创建静态文件,并使代码具有足够的通用性,以满足您的所有需求 这不仅仅是一个简单的代码重用问题——如果您要动态生成这些代码,那么每次使用时都需要重新下载。您正在浪费CPU时间来呈现模板,并浪费带宽通过线路一次又一次地发送相同或可能相同的数据

据我所知,在动态JS文件中没有办法使用{%include%}来包含样式。但是我不想再打电话给服务器下载样式


也许可以通过获取样式表并将其注入文档的head元素……以前有人这样做过吗

我可以设想您希望动态生成JS或CSS的情况,但一般来说,您最好为每个JS或CSS创建静态文件,并使代码具有足够的通用性,以满足您的所有需求

这不仅仅是一个简单的代码重用问题——如果您要动态生成这些代码,那么每次使用时都需要重新下载。您正在浪费CPU时间来呈现模板,并浪费带宽通过线路一次又一次地发送相同或可能相同的数据

但是,如果您有一个很好的元编码用例,那么您也没有理由不能:

在呈现模板的JS中,将JS或CSS放在标题或正文中 b为JS或CSS创建一个视图,并使用Django的模板引擎来呈现它们


{%include%}标记对于a很好,对于b,您只需使用普通HTML来引用视图的URL。

我可以想象您希望动态生成JS或CSS的情况,但通常最好为每个视图创建静态文件,并使代码足够通用,以满足您的所有需要

这不仅仅是一个简单的代码重用问题——如果您要动态生成这些代码,那么每次使用时都需要重新下载。您正在浪费CPU时间来呈现模板,并浪费带宽通过线路一次又一次地发送相同或可能相同的数据

但是,如果您有一个很好的元编码用例,那么您也没有理由不能:

在呈现模板的JS中,将JS或CSS放在标题或正文中 b为JS或CSS创建一个视图,并使用Django的模板引擎来呈现它们

{%include%}标记对于a很好,对于b,您只需使用普通HTML来引用视图的URL。

在JS文件中:

var style = document.createElement('link');
style.setAttribute('rel', 'stylesheet');
style.setAttribute('type', 'text/css');
style.setAttribute('href', 'style.css');
document.getElementsByTagName('head')[0].appendChild(style);
希望对您有所帮助。

在您的JS文件中:

var style = document.createElement('link');
style.setAttribute('rel', 'stylesheet');
style.setAttribute('type', 'text/css');
style.setAttribute('href', 'style.css');
document.getElementsByTagName('head')[0].appendChild(style);
希望对您有所帮助。

使用jquery

$('head').append($('<link rel="stylesheet" type="text/css" href="style.css">'))
使用jquery

$('head').append($('<link rel="stylesheet" type="text/css" href="style.css">'))