日期:2014-05-16  浏览次数:20263 次

js控制IFRAME内SRC问题,代码出问题,求助
本帖最后由 wjp16351 于 2013-03-12 02:04:24 编辑

<html>
<head>
<title>js </title>
</head>

<body>
<iframe id="ifr" src="http://www.baidu.com/"; width="600" height="600"></iframe>
<script language="JavaScript">
var iframe = document.getElementById('ifr');   
setTimeout(Tim(),rand(3000,9000)) 

function Tim(){
for(i=1;i<4;i++){
 changeFrameSrc(iframe,i);
}
}
function changeFrameSrc(f,i){
    var src_1 = 'http://www.163.com';
var src_2 = 'http://www.taobao.com';
var src_3 = 'http://www.qq.com';
    f.src = "src_"+i;
}

function rand(min,max){
    return parseInt(Math.random()*(max-min+1)+min);
}
</script>
</body>
</html>



代码如上,我想用JS控制一个IFRAME定时修改SRC地址,我写的上述代码应该可以,但怎么测试也不行,求解答!
iframe javascript

------解决方案--------------------
逻辑上就有问题

function Tim(){
    for(i=1;i<4;i++){
     changeFrameSrc(iframe,i); // 循环赋值,后面的3 会覆盖前面的1,2. 达不到切换效果
    }
}
function changeFrameSrc(f,i){
    var src_1 = 'http://www.163.com';
    var src_2 = 'http://www.taobao.com';
    var src_3 = 'http://www.qq.com';
    f.src = "src_"+i;  "src_"+i 是字符串。而不是变量 src_1
}
 
var urls=['http://www.163.com','http://www.taobao.com', 'http://www.qq.com'];
f.src = urls[i-1];
------解决方案--------------------
<html>
<head>
<title>js </title>
</head>
 
<body>
<iframe id="ifr" src="http://www.baidu.com/"; width="600" height="600"></iframe>
<script language="JavaScript">
   var iframe = document.getElementById('ifr');
    //setTimeout(Tim(), rand(3000, 9000))//不要加()
   setTimeout(Tim, rand(3000, 9000))
   function Tim() {
       changeFrameSrc(iframe, rand(1, 3));//随机一个地址
        /*for (i = 1; i < 4; i++) {
            changeFrameSrc(iframe, i);
        }*/
    }
    function changeFrameSrc(f, i) {
        var src_1 = 'http://www.163.com';
        var src_2 = 'http://www.taobao.com';
        var src_3 = 'http://www.qq.com';
        f.src = eval("src_" + i)//eval得到变量
    }

    function rand(min, max) {
     &