2012-03-27 200 views
0

我需要将以下代码放在名为activate.js的JavaScript中。你能告诉我如何?从javascript调用javascript

<script type="text/javascript" src="http://domain.com/tyr1.js"></script> 
<script type="text/javascript"> 
var int = new int({ 
    seconds: 30, 
    markUser: true, 
    markPeriod: 0 
}); 
pop.add("http://www.google.com", "google", "0"); 
pop.add("http://www.yahoo.com", "yahoo", "1"); 
pop.add("http://www.bing.com", "bing", "2"); 
pop.show(); 
</script> 
+0

简而言之,没有像@Andrew所说的那样手动合并代码,你不能完成你想做的事情,因为JavaScript本身没有包含其他JavaScript文件的机制。这需要用'script'元素在HTML中完成。话虽如此,你的activate.js可能会在DOM中创建'script'元素,请求适当的文件。 – MrWhite 2012-03-27 16:45:47

+0

谢谢乔希,你能告诉我怎么做? – user1289292 2012-03-27 17:00:37

回答

0

打开此文件:http://domain.com/tyr1.js

复制并粘贴内容到一个文本文件(没有<script>标签)。然后复制并粘贴在它下面:

var int = new int({ 
    seconds: 30, 
    markUser: true, 
    markPeriod: 0 
}); 
pop.add("http://www.google.com", "google", "0"); 
pop.add("http://www.yahoo.com", "yahoo", "1"); 
pop.add("http://www.bing.com", "bing", "2"); 
pop.show(); 

最后,文本文档另存为activate.js。这是我能想到的最好的方式:)

+0

我只需要在js中的代码。我不想混合它。 – user1289292 2012-03-27 16:45:42

2

正如我在上面的评论中提到的,你不能做你想做的事情,因为JavaScript本身没有包含其他JavaScript文件的机制。 JavaScript文件使用HTML脚本元素包含在文档中。然而,我们可以编写一个包含在文档中的脚本(“active.js”),并手动为每个外部JavaScript文件创建一个附加脚本元素。但是,应该指出,由于我们正在创建额外的HTTP请求,因此可能会降低性能。

我想你还需要将你当前的内联脚本分离成一个外部文件,以避免在加载之前引用“tyr1.js”元素的“鸡与蛋”场景。

所以你的“active.js”的剧本变成类似:

/** 
* Combined JavaScript files (active.js) 
* - Creates script elements for any additional JS files 
*/ 
(function() { 
    var head = document.getElementsByTagName('head')[0]; 

    // Scripts to include 
    var js = [ 
     'http://domain.com/tyr1.js', 
     '/inline.js' /* Change path to where this is located */ 
    ]; 

    // Clone for every external script that needs to be included 
    var jsElem = document.createElement('script'); 
    jsElem.type = 'text/javascript'; 

    // Step through scripts to include 
    for (var i=0; i<js.length; i++) { 
     var newJsElem = jsElem.cloneNode(false); 
     newJsElem.src = js[i]; 

     // Append to HEAD section 
     head.appendChild(newJsElem); 
    } 
})() 

当然,这是假设你的脚本将被放置在文档的HEAD部分。

+0

谢谢你。我会尝试。 – user1289292 2012-03-27 21:56:44