在函数中引用外部JavaScript文件

在函数中引用外部JavaScript文件,javascript,hmac,Javascript,Hmac,可以在JavaScript函数中引用JavaScript文件吗 因此,我想将其转化为: <script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js"></script> <script type="text/javascript"> var hmacString = Crypto.HMAC(Crypto.SHA1, "M

可以在JavaScript函数中引用JavaScript文件吗

因此,我想将其转化为:

<script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js"></script>
<script type="text/javascript">

var hmacString = Crypto.HMAC(Crypto.SHA1, "Message", "Secret Passphrase", { asString: true });

</script>
我正在使用一个名为Cast Iron的工具,因此它将JavaScript限制为只包含一个函数,但我需要调用一个外部文件来加载所需的功能


这可能吗?

如果我理解正确,是的,您可以从一个JS文件访问函数和类,只要在尝试访问它之前加载了另一个类

因此,如果
某个javascript文件.js
有一个名为
getThings()
的函数,那么您可以执行以下操作:

<script type="text/javascript" src="http://cdn.example.com/js/some-javascript-file.js"></script>
<script type="text/javascript">
    var things = getThings(); // getThings is a publicly accessible function in an external class.
</script>

var things=getThings();//getThings是外部类中可公开访问的函数。

好的,屏幕截图有帮助。似乎您希望从外部JS文件中获得一些内容,并在该函数中对其进行操作

因此,您可以使用一个javascript文件:

var foo = 'foo'; //this is in the global scope
然后,您的另一个文件具有:

function hmac(key){
    alert(document.foo);
}

如果您需要访问什么

是的,您可以使用javascript加载其他js文件。根据执行函数的加载状态,您可以使用

document.write('<script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js"'+'><'+'/script>"');
// loads synchronouly and executes
Crypto.HMAC(...); // is available here

另见

迷惑了我。。。你现在想做什么?@jAndy:我想他想把所有的代码整合成一个函数,所以他需要这个函数来“包含”外部JS文件,这样他就可以调用
Crypto.HMAC
。你的意思是什么?Cast Iron是一款IBM产品,它允许云和内部应用程序之间的连接。基本上我是想得到这个
src=”http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js“
此处的内部
函数hmac(输入){}
。可以吗?哦,我现在明白了。我下面的答案可能是无效的。这是一个可能的副本,看起来很棒,但这是它变得困难的地方。铸铁硬编码函数hmac(input){},因此看起来像这样。这意味着我不能按你的要求做。这有意义吗?我想我明白你现在说的,你可能想要
文档
关键字,并将你需要的变量保留在全局范围内。
document.write('<script type="text/javascript" src="http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js"'+'><'+'/script>"');
// loads synchronouly and executes
Crypto.HMAC(...); // is available here
var s = document.createElement("script");
s.type = "text/javascript";
s.src = "http://crypto-js.googlecode.com/files/2.5.3-crypto-sha1-hmac.js";
s.onload = function() {
    // the file should be executed now so
    Crypto.HMAC(...); // is available here
};
document.head.appendChild(s); // load asychronously