【发布时间】:2010-02-08 16:58:09
【问题描述】:
我有一个函数可以将 youtube id 从 url 中剥离出来。然后我想每页使用这个函数 10 次(在 wordpress 循环中)。
当我在函数脚本标签中提供 url 时,该函数运行良好,但是当我在循环中启动一组新的脚本标签时,它就不起作用了。
我需要知道如何使用我的函数而不先声明它。
这是我在标题中的代码:
<script type="text/javascript">
$(document).ready(function() {
var getList = function(url, gkey){
var returned = null;
if (url.indexOf("?") != -1){
var list = url.split("?")[1].split("&"),
gets = [];
for (var ind in list){
var kv = list[ind].split("=");
if (kv.length>0)
gets[kv[0]] = kv[1];
}
returned = gets;
if (typeof gkey != "undefined")
if (typeof gets[gkey] != "undefined")
returned = gets[gkey];
}
return returned;
};
// THIS WORKS
alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));
});
但是当我尝试在页面的其他地方使用它时,它不起作用。
<script type="text/javascript">
$(document).ready(function() {
alert(getList('http://www.youtube.com/watch?v=dm4J5dAUnR4', "v"));
};
</script>
Firebug 给了我 getList is not defined 这是有道理的,因为它没有。我可以“全局”声明这个函数吗?
【问题讨论】:
-
很抱歉格式不好,每次我编辑代码时,结果都很奇怪。代码有效。
-
顺便说一句 - 在 document.ready 中声明它意味着它仅在文档准备好(加载页面后)时定义,因此您应该在确定它已定义时调用该函数。如果声明本身在您尝试使用它之后运行,则将其声明为全局对象可能还不够。
标签: javascript jquery