jsp装饰器页面,引入的js文件没效果,是怎么回事

JavaScript021

jsp装饰器页面,引入的js文件没效果,是怎么回事,第1张

首先,引入js有两种方法。一种是绝对路径。一种是相对路径。

1、确认页面是否有报错。在浏览器中的页面上,右击“审查元素”进入调试页面,查看右上角的位置是否有报错。如果有报错,点击“X”标志,进去看什么错误,相应去解决。

2、确认JS是否被正确引入。页面没有报错,点击顶栏的Source查看相应的JS目录下是否有你引入的JS文件。如果没有则引入失败。路径有错误,重新调试吧。

3、JS被正确引入,则可能JS的方法没被正确的调用。查看对应的哪个方法没有生效,开启调试模式。

1)引入的js文件出错,

检查方法:将Js的内容写在当前的页面的<script></script>之间,看是否能够正常运行,如果不能,请核查代码 

2) 如果引入的代码在当前页面中能够正常运行,但当引入时不能正常运行,则有两种可能 

   A:引入Js的路径有问题 

   B:引入的Js的编码格式与当前页面不匹配; 

3)引入Js的路径问题 

   js的引入不外乎两种,相对路径与绝对路径 

  test.js  与index.jsp 放在同一文件夹下,比如: web应用/manage/下面

第一种情况 : 

  一般在学习时, 一个tomcat上都跑多个工程, 用工程名来区分 

因为我的的URL是 :http://localhost/工程名 /manage/index.jsp 

多了一个工程名,所以要加 <%=request.getContextPath() %> 

如下: 

<script src="<%=request.getContextPath() %> /manage/test.js"></script>

第二种情况: 

  访问JSP文件时, 用相对路径引入JS,CSS文件是OK的 

  真实项目中,  一个tomcat上要是也跑了多个工程, 并用IP来区分 

  url 是这样的:  http://localhost/manage/index.jsp   注意这里,是直接访问JSP文件,不是    servlet,不是struts . 

test2.js  与index.jsp 放在同一文件夹下,下面用相对路径来引入 JS文件 是OK 的: 

<script src=test2.js></script> 

第三种情况:一个通过Action跳转之后到达的Jsp页面需要引入一个Js文件: 

  这种情况下,请使用绝对路径, 

  在第二情况的基础上, 我们访问的是 servlet 或是struts的action  , 再转发到 index.jsp 

url 是:  http://localhost/***.do或者  http://localhost/***.action 这里不是访问JSP文件了 

因此路径应该这么写: 

<script src="/manage/test.js"></script>

test2.js  前面一定要有/manage/ 

或者:

<script src="http://127.0.0.1/工程名/manage/test.js"></script>

这种方法推荐 

在引入js时,我们应该养成良好的习惯,请使用绝对路径,在开发时,能够大大的提高自己的开发效率。 

4)引入js的编码问题 

   将两者的编码改为一致,一般我们可以修改JS文件编码使其与页面编码一致。 

第二种方式是使用script标记的charset属性来显式指明所引入js文件的编码。如

<script src="xx.js" charset="gbk"></script>

这样无论页面是什么编码,都可以正常的访问这个JS中的内容。 

相比之下,第二种可能更方便一些,而且作为一种好的习惯,平时我们应该尽可能都写上charset属性。

jsp里引用了js文件会调用程序中已经调用过的js方法,但是全部方法都会加载进来,不是全部都执行。

js文件的引入方法:

<script src="/manage/test.js"></script>

注意事项:<script src="xx.js" charset="gbk"></script>这样无论页面是什么编码,都可以正常的访问这个JS中的内容。