如何在JavaScript内部调用外部函数?
我相对较新的JavaScript,所以这可能有点微不足道。但我似乎无法找到这个问题的答案。如何在JavaScript内部调用外部函数?
假设我有一个带有函数的JavaScript文件(bar.js),名为foo()。我想在脚本标记内调用这个函数(foo)。我希望它能像这样工作。
<script type="text/javascript" src="bar.js">
foo();
</script>
我不能得到这个工作。我用浏览器运行了JavaScript控制台,它似乎在做什么......没有。没有语法错误或任何东西。
我可以运行一个类似的功能,只需点击按钮...使用上面的脚本标签和这个。
<button type="button" onclick="foo();">Click Me</button>
我可以这样做,但在实际情况下,我需要将参数传递到按钮单击时调用的函数。我也无法得到那些认可。我确信这与范围有关。
我想这是像这样的方式......
<script type="text/javascript" src="bar.js">
var a = "blah";
var b = "blab";
</script>
.... (some more html)
<button type="button" onclick="foo(a,b);">Click me </button>
在这里,我得到一个是不确定的。这导致我认为这是一个范围问题。脚本标签位于头部,按钮位于主体部分。你可以把脚本标签放在头部和身体标签之外来制作全局数据吗?
感谢您的帮助提前。
我以前从未使用过jsfiddle,并且无法正常工作,所以我只需在此处发布示例代码。
<html>
<head>
<script type="text/javascript" src="bar.js">
</script>
<!--From what yall say I should have another script
tag here for anything else. Say some variable?-->
<script type="text/javascript">
var a = "hello";
var b = "text";
</script>
</head>
<body>
<!--This should work now?-->
<button type="button" onclick="foo(b,a)">
Click me
</button>
</body>
</html>
bar.js内容:
function foo(id,string){
document.getElementById(id).innerHTML = string;
}
我得到了这个工作。 谢谢大家。
您需要首先包括含有功能的JavaScript:
<script type="text/javascript" src="bar.js"></script>
,然后调用它另一脚本标签:
<script type="text/javascript">
foo();
</script>
在你的榜样,你似乎已经混合2个概念放到一个无效的单个脚本标记中:包含一个外部JavaScript文件并在脚本标记的主体中写入您的代码。
脚本可以SCRIPT元素或 的内容内在外部文件中定义。如果未设置src属性,则用户代理必须将元素的内容解释为脚本。如果src的URI值为 ,则用户代理必须忽略该元素的内容并通过URI检索该脚本的 。
所以基本上你应该避免这种情况,并有单独的脚本标记包含外部文件和写入内联js。
所以你不能链接和调用相同的脚本标记? – 2015-01-26 21:30:55
这并不能解释为什么从按钮调用它的版本不起作用。 – Quentin 2015-01-26 21:31:07
不,你不能,你应该在2个独立的脚本标签中做到这一点。 – 2015-01-26 21:31:21
你可以发布你在jsfiddle中试过的代码吗? – Bioto 2015-01-26 21:28:43
相关:[内联脚本与SRC属性?](http://stackoverflow.com/questions/1056325/javascript-inline-script-with-src-attribute) – 2015-01-26 21:36:55