如何从另一个目录加载javascript文件

时间:2016-06-02 11:08:34

标签: javascript html netbeans directory

我的想法是通过javascript文件而不是手动创建侧边栏菜单,我已经完成了。之前我从同一个目录加载了这个JS文件,所以很明显侧边栏菜单加载得很好但是现在,我想从不同的目录加载它,即使我有正确的源代码,它也不仅仅是加载。

这或多或少是目录的结构:

js - public_html - leftNav.js

Ofertas - public_html - 许多html文件(leftNav.js以前也在这里,但我移动了它)

teste - public_html - 许多html文件(leftNav.js以前也在这里,但我移动了它)

HTML文件 - > offers.html位于Ofertas文件夹

<ul class="sidebar-menu">
 <li class="header">MAIN NAVIGATION</li>
 <li class="treeview active">
  <a href="#">
   <i class="fa fa-edit"></i> <span>Projects</span>
   <i class="fa fa-angle-left pull-right"></i>
  </a>
  <ul class="treeview-menu" id="leftNav" >             
  </ul>
 </li>
 </ul>
 <script src="../../js/public_html/leftNav.js" type="text/javascript"></script>

这是leftNav.js文件:

window.addEventListener('load', leftNav, false);

var x = location.pathname;
alert(x);

function leftNav() {

 appendUl('leftNav', 'outerUL'); 

 appendLiA('outerUL', 'offers', '/Ofertas/offers.html', 'Offers');

 appendLiA('outerUL', 'mobilecarriers', '/Ofertas/mobilecarriers.html', 'Mobile Carriers');

 appendLiA('outerUL', 'affilpixeltracking', '/Ofertas/affiliatepixel.html', 'Affiliate Pixel Tracking');

 appendLiA('outerUL', 'carrierip', '/Ofertas/carrierip.html', 'Carrier IP');

 appendLiA('outerUL', 'updtconverstats', '/Ofertas/Pag1.html', 'Update Conversion Status');

 appendLiA('outerUL', 'updtconverstats2', '/Ofertas/Pag4.html', 'Update Conversions Status - S2');

 appendLiA('outerUL', 'getconvdata', '/Ofertas/Pag2.html', 'Get Conversions Data'); 

 appendLiA('outerUL', 'getconvdata2', '/Ofertas/Pag6.html', 'Get Conversion Data - S2');

 appendLiA('outerUL', 'updtconverspr', '/Ofertas/Pag3.html', 'Update Conversions P/R'); 

 appendLiA('outerUL', 'updtconverpr2', '/Ofertas/Pag5.html', 'Update Conversions P/R - S2');

 appendLiA('outerUL', 'test', '/teste/index.html', 'Test');


function appendUl(append_to_id, ul_id) {

 var ul = document.createElement('ul');
 ul.id = ul_id;

 var appendTo = document.getElementById(append_to_id);
 appendTo.appendChild(ul);
}

function appendLiA(append_to_id, li_id, a_href, a_text, i_class) {

 var a = document.createElement('a');
 a.href = a_href;
 a.textContent = a_text;

 var li = document.createElement('li');
 li.id = li_id;
 li.appendChild(a);

 var appendTo = document.getElementById(append_to_id);
 appendTo.appendChild(li);
 }   
}    

2 个答案:

答案 0 :(得分:1)

原来这个问题是一个轻微的来源疏通。在我的HTML文件中,我有:

<script src="../../js/public_html/leftNav.js" type="text/javascript"></script>

并且据说我不需要在源代码中调用public_html,即使程序自己给出了位置,所以修正是:

<script src="../../js/leftNav.js" type="text/javascript"></script>

答案 1 :(得分:0)

如果您使用NetBeans为HTML5项目提供的轻量级http服务器,则无法实现。服务器只能提供项目的Site Root中的文件(在您的情况下为public_html),但不能提供来自站点根目录之外的文件。您将需要使用自己的HTTP服务器并在NetBeans中配置项目以使用它(在项目属性中 - >运行 - &gt; Web服务器)