Javascript函数将无法运行

时间:2012-01-24 19:05:13

标签: javascript file external

我有以下脚本:

<script>
    (function(d, s, id, p) {
var js, ins = d.getElementsByTagName(s)[0];
    js = d.createElement(s); 
    js.src = "http://www.site.com/feeds/run.php?id="+id+"&p="+p;
    ins.parentNode.insertBefore(js, ins);
data();
}(document, 'script', 131, 'large'));
</script>

run.php实际上返回一个正常运行的javascript并执行一些函数,但我在上面脚本中调用的函数(data();)将不会执行。数据函数显示为:

function data(){
    var u;
    alert("I am an alert box");
    u = document.URL;
    document.body.innerHTML += '<form id="dynForm" target="transFrame" action="http://www.site.com/data.php" method="post"><input type="hidden" name="u" value="'+u+'"></form>';
    document.getElementById("dynForm").submit();
}

如果有人有可以帮助我运行此功能的信息,我们将不胜感激。

- 克里斯呐喊 - 我检查了所有的功能,他们没事。如果我嵌入脚本如:

<script type="text/javascript" src="http://www.site.com/feeds/run.php"></script>

但我不能使用这一行,因为我打算让人们将其添加到他们的网站,并且不希望他们删除这些行以停止某些操作。但是当我使用这种方法时,我必须在运行文件中的其他函数或者这个函数之间进行选择。

1 个答案:

答案 0 :(得分:3)

插入包含数据功能的脚本后,您不必等待脚本完成加载,因此数据功能尚未可用。

试试这个:

(function(d, s, id, p) {
var js, ins = d.getElementsByTagName(s)[0];
    js = d.createElement(s); 
    js.src = "http://www.site.com/feeds/run.php?id="+id+"&p="+p;
    ins.parentNode.insertBefore(js, ins);
    var timer = setInterval(tryData, 100);
    function tryData()
    {
        if(window.data)
        {
            clearInterval(timer);
            data();
        }
    }
}(document, 'script', 131, 'large'));