2013-08-23 92 views
1

一个main.xhtml页面包含:错误的JavaScript包括

<script src="#{applicationBean.resourcePath}/admin/js/jquery.min.js"></script> 
    <script src="#{applicationBean.resourcePath}/admin/js/jquery.actual.min.js"></script> 
    <script src="#{applicationBean.resourcePath}/admin/bootstrap/js/bootstrap.min.js"></script> 

    <!-- smart resize event --> 
    <script src="#{applicationBean.resourcePath}/admin/js/jquery.debouncedresize.min.js"></script> 
    <!-- js cookie plugin --> 
    <script src="#{applicationBean.resourcePath}/admin/js/jquery.cookie.min.js"></script> 
    <!-- js ui --> 
    <script src="#{applicationBean.resourcePath}/admin/js/jquery-ui.custom.min.js"></script> 
    <!-- tooltips --> 
    <script src="#{applicationBean.resourcePath}/admin/lib/qtip2/jquery.qtip.min.js"></script> 
    <!-- jBreadcrumbs --> 
    <script src="#{applicationBean.resourcePath}/admin/lib/jBreadcrumbs/js/jquery.jBreadCrumb.1.1.min.js"></script> 
    <!-- sticky messages --> 
     <script src="#{applicationBean.resourcePath}/admin/lib/sticky/sticky.min.js"></script>   
    <!-- common functions --> 


    <script src="#{applicationBean.resourcePath}/admin/lib/validation/jquery.validate.min.js"></script> 


    <script src="#{applicationBean.resourcePath}/admin/lib/tinymce/tiny_mce/tiny_mce.js"></script>  






<script> 
    $.ajax({    
          type: 'POST', 
          url: '#{request.contextPath}/view/user/'+ page +'.xhtml', 

          success: function(data) { 
           $('#main_content').html(data); 

          } 
         }); 
<script> 

正如你可以看到上面我可以包括XHTML页面(如页面如下所示),main.xhtml从XHTML网页

线(确切顺序)

<!-- datatable --> 
    <script 
     src="#{applicationBean.resourcePath}/admin/lib/datatables/jquery.dataTables.min.js"></script> 
    <script 
     src="#{applicationBean.resourcePath}/admin/lib/datatables/extras/Scroller/media/js/Scroller.min.js"></script> 

    <link rel='stylesheet' 
     href='#{applicationBean.resourcePath}/admin/css/ui.dynatree.css' /> 

    <!-- validation --> 
    <script 
     src="#{applicationBean.resourcePath}/admin/lib/validation/jquery.validate.min.js"></script> 

    <!-- sticky messages --> 
    <script 
     src="#{applicationBean.resourcePath}/admin/lib/sticky/sticky.min.js"></script> 

    <script 
     src="#{applicationBean.resourcePath}/admin/bootstrap/js/bootstrap.min.js"></script> 


    <script 
     src='#{applicationBean.resourcePath}/admin/js/jquery.dynatree.js' 
     type='text/javascript'></script> 
    <script type='text/javascript' 
     src='http://localhost:9090/app/dwr/util.js'></script> 
    <script type='text/javascript' 
     src='http://localhost:9090/app/dwr/engine.js'></script> 
    <script type='text/javascript' 
     src='http://localhost:9090/app/dwr/interface/ldapService.js'></script><script src='#{applicationBean.resourcePath}/admin/js/custom/organization.js'></script> 

从organization.js甲线

treeDiv.dynatree('destroy'); 

我希望没有错误,因为“有时”它的工作原理,但有时给人“‘treeDiv.dynatree’是不是一个函数”

在铬我可以看到开发者工具>网络链接,点击它并可以查看源:

jquery.dynatree.js?_=1377244144331 
+1

可能是错误的javascript的顺序 – Praveen

+0

@ user1671639我更新了问题,谢谢 – merveotesi

+1

愚蠢的问题:你加载jQuery? –

回答

1

这可能是一个问题引起的放置JavaScript文件由于错误的顺序。

请致电jquery.dynatree.js首先然后organization.js像下面一样。

<script 
     src='#{applicationBean.resourcePath}/admin/js/jquery.dynatree.js' 
     type='text/javascript'></script> 

<script src='.../organization.js'type='text/javascript'></script> 

从你更新的问题:

“有时”它的工作原理,但有时给人“‘treeDiv.dynatree’是不是一个函数”

有可能造成一些其他的js文件的问题。

+0

我更新了问题 – merveotesi

+0

由于您提到的有时可行,很少有澄清包括'jQuery'和'jQuery UI'? – Praveen

1

如果我正确理解您的体系结构(我不确定自己的结构),那么您的单页应用程序位于main.xhtml。该应用程序利用AJAX来加载这似乎是一个完整的XHTML文档,然后插入父页面的HTML:

$('#main_content').html(data); 

无论JavaScript代码,例如内页包含依赖于文件装载事件初始化可能不按预期工作。

例如,您加载organization.js,其中包含此:

treeDiv.dynatree('destroy'); 

...触发:

'treeDiv.dynatree' 不是一个函数

那意味着当该行代码运行时,treeDiv变量尚未正确初始化。

+0

是的,这是架构。当我将dynatree.js添加到内部页面和主页面时,它不起作用,因为我认为包含双重内容。因此,这个架构不是有解决方案吗? – merveotesi

+0

@tuxi - 我已经更新了答案,以解释您获得的确切错误消息。你需要确保当'treeDiv.dynatree('destroy');'运行'treeDiv'变量时存在。 –

+0

' \t \t \t \t \t \t \t \t \t \t \t \t \t \t '我将所有这些粘贴到organization.xhtml中,它起作用,你一开始就是对的,它是关于jQuery的库。但过了一段时间,它不会工作,因为双重定义。 – merveotesi