如何动态导入javascript和css文件
我想根据某些条件导入给定的css或javascript文件,在我的Servlet中,我有:如何动态导入javascript和css文件,java,javascript,css,jsp,servlets,Java,Javascript,Css,Jsp,Servlets,我想根据某些条件导入给定的css或javascript文件,在我的Servlet中,我有: protected void doPost(...) { if(condition) { //import some javascript or css file here } } 我需要这种行为,因为我有太多的文件要导入,文件名可能会根据情况而变化。 有可能吗?您是否正在尝试将Javascript和CSS插入dom?我会从客户的角度去做。我的意思是,可以通过显式地写出或
protected void doPost(...)
{
if(condition)
{
//import some javascript or css file here
}
}
我需要这种行为,因为我有太多的文件要导入,文件名可能会根据情况而变化。
有可能吗?您是否正在尝试将Javascript和CSS插入dom?我会从客户的角度去做。我的意思是,可以通过显式地写出
或
的代码来实现。一个更好的方法是将一些东西发送回客户端,告诉它添加样式表或Javascript
然后您可以动态添加它,如下所示:
如果这不需要动态完成,那么就更容易了。只需设置一个标志,然后在JSP或ASP中检查标志的状态。在条件标记中,您将为CSS和Javascript添加代码。但是,根据您的问题,我假设它是前者。您是否试图将Javascript和CSS插入dom?我会从客户的角度去做。我的意思是,可以通过显式地写出
或
的代码来实现。一个更好的方法是将一些东西发送回客户端,告诉它添加样式表或Javascript
然后您可以动态添加它,如下所示:
boolean condition = evaluateItSomehow();
request.setAttribute("condition", condition);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
然后在page.jsp
中使用c:if
:
<head>
<c:if test="${condition}">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="script.js"></script>
</c:if>
...
</head>
及
...
如果将后缀设置为例如“foo”
,这将加载样式\u foo.css
和脚本\u foo.js
。我认为这提供了足够的新见解。是的
boolean condition = evaluateItSomehow();
request.setAttribute("condition", condition);
request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response);
function loadjscssfile(filename, filetype) {
if (filetype == "js") { //if filename is a external JavaScript file
// alert('called');
var fileref = document.createElement('script')
fileref.setAttribute("type", "text/javascript")
fileref.setAttribute("src", filename)
alert('called');
}
else if (filetype == "css") { //if filename is an external CSS file
var fileref = document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref != "undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
然后在page.jsp
中使用c:if
:
<head>
<c:if test="${condition}">
<link rel="stylesheet" type="text/css" href="style.css">
<script type="text/javascript" src="script.js"></script>
</c:if>
...
</head>
及
...
如果将后缀设置为例如“foo”
,这将加载样式\u foo.css
和脚本\u foo.js
。我认为这提供了足够的新见解
function loadjscssfile(filename, filetype) {
if (filetype == "js") { //if filename is a external JavaScript file
// alert('called');
var fileref = document.createElement('script')
fileref.setAttribute("type", "text/javascript")
fileref.setAttribute("src", filename)
alert('called');
}
else if (filetype == "css") { //if filename is an external CSS file
var fileref = document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref != "undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}
调用此javascript函数动态加载css和js文件。在“filename”参数中传递名为的完整文件路径
调用此javascript函数动态加载css和js文件。在'filename'参数中传递名为的完整文件路径。hello:)使用此方法时,bwoser缓存是否有任何问题?如果我想加载相同的页面,在不同的条件下,使用多种css?客户端浏览器是否会缓存css?您好:)使用此方法时,bwoser缓存是否有任何问题?如果我想加载相同的页面,在不同的条件下,使用多种css?客户端浏览器会缓存css吗?