我有以下脚本:
<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>
但我不能使用这一行,因为我打算让人们将其添加到他们的网站,并且不希望他们删除这些行以停止某些操作。但是当我使用这种方法时,我必须在运行文件中的其他函数或者这个函数之间进行选择。
答案 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'));