2011-10-14 44 views
5

我想将JS文件包含在服务器端的另一个JS文件中,以防止从客户端加载复制粘贴和多个JS文件。 就像include('file.js')一样。如何在服务器端包含javascript文件?

+0

感谢您的答案,但我只是希望它在服务器上完成,从客户端加载一个JavaScript文件。我宁愿将.js转换成.php(或重写),然后使用PHP include和header('content-type:text/javascript)。其他解决方案? –

回答

2

作为Supercharging javascript文章建议 - 使用PHP,您可以读取所有的.js文件并创建一个大的js文件,您将一次发送。

这是从文章的例子的简化,只是为了让你开始:

<?php 
define('SCRIPT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/script/'); 

$files = array(
    'jquery.js', 
    'myLib.js', 
    'site.js' 
); 

header('Content-Type: text/javascript'); 
foreach (files as $file) { 
    if (@readfile(SCRIPT_DIR . $file) === false) { 
     error_log("javascript.php: Error reading file '$file'"); 
    } 
} 
?> 

我也建议阅读全文Supercharging JavaScript in PHP,以获得更多信息。

+0

是的,这就是我只想到的。我不需要一个库。我可以在几行代码中自己做。谢谢 :) –

3

有没有内置的方法,包括从一个JavaScript文件的其他JavaScript文件...但你可以将它们添加到DOM - >

function addJavascript(jsname,pos) { 
    var th = document.getElementsByTagName(pos)[0]; 
    var s = document.createElement('script'); 
    s.setAttribute('type','text/javascript'); 
    s.setAttribute('src',jsname); 
    th.appendChild(s); 
} 

用法示例:

addJavascript('newExternal.js','body'); 
+0

我肯定会为可爱的代码投票,但更好地处理路径问题,脚本加载顺序和依赖管理到脚本加载器:) – Deeptechtons

0

你将不得不使用脚本加载器,我想推荐Dustin Diaz的script.js谁在Twitter上工作。 Project Page on Github。 这里是你如何使用它 假设你有在这里一个页面加载的jQuery插件是你应该做的

// load jquery and plugin at the same time. name it 'bundle' 
$script(['jquery.js', 'my-jquery-plugin.js'], 'bundle') 

// load your usage 
$script('my-app-that-uses-plugin.js') 


/*--- in my-jquery-plugin.js ---*/ 
$script.ready('bundle', function() { 
    // jquery & plugin (this file) are both ready 
    // plugin code... 
}) 


/*--- in my-app-that-uses-plugin.js ---*/ 
$script.ready('bundle', function() { 
    // use your plugin :) 
}) 

例子也从项目页面。下面是步骤,您应该遵循

  1. 装入的script.js文件第一
  2. 现在包括加载其他所有想脚本异步[依赖装载机脚本的内容会像上述]
  3. 依赖装载机脚本
1

JSfile = “1.js,2.js,3.js”

for循环它

document.write()的;