我动态地将一个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);
答案 0 :(得分:4)
你在哪里传递参数?
试试这个:
timer = setInterval(function(){
tryData(131, 'large');
}, 100);