Javascript函数将变量返回为undefined

时间:2012-02-02 20:03:15

标签: javascript function variables undefined

我动态地将一个javascript文件包含到一个html页面中,这很好用。但是当我从文件中运行函数'tryData'时,变量将返回undefined。我一直在寻找几个小时在任何地方找不到类似的问题,有谁知道问题是什么?

外部文件中的

功能:

function tryData(id, size){
    document.getElementById('content').innerHTML = '<iframe src="http://domain.com/feeds/'+id+'/'+size+'/" id="frame"></iframe>';
    if(window.data){
        clearInterval(timer);
        data();
    }
}

我用它来称呼它:

tryData(131, 'large');

我知道该功能正在运行,因为按预期插入了框架,但没有内容,因为框架的网址为“domain.com/feeds/undefined/undefined/”,而不是“domain.com/feeds” / 131 /大/'.

提前感谢您的任何帮助:)


以下是具有以下功能的html页面示例:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="robots" content="NOINDEX,NOFOLLOW" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>


    <!-- Widget -->
    <div id="content"></div>    
    <script>
    (function(d, s) {
    var js = d.createElement(s), ins = d.getElementsByTagName(s)[0]; 
        js.src = "http://domain.com/feeds/insert.js";
        ins.parentNode.insertBefore(js, ins);
        tryData(131, 'large');
        }(document, 'script'));
    </script>
    <!-- Widget End -->

</body>
</html>

这是js文件:

function data(){
    var u;
    u = document.URL;
    $.post("http://domain.com/data.php", { u: u} );
}

function tryData(id, size){
    document.getElementById('lsb').innerHTML = '<iframe src="http://domain.com/feeds/'+id+'/'+size+'/" id="frame"></iframe>';
    if(window.data){
        clearInterval(timer);
        data();
    }
}

var script = document.createElement('script');
script.src = 'http://code.jquery.com/jquery-latest.js';
script.type = 'text/javascript';
document.getElementsByTagName('head')[0].appendChild(script);   

timer = setInterval(tryData, 100);

1 个答案:

答案 0 :(得分:4)

你在哪里传递参数?

试试这个:

timer = setInterval(function(){
     tryData(131, 'large');
}, 100);