从不同的js文件访问变量

时间:2012-07-19 08:49:29

标签: javascript

我有3个html文件& 3个js文件

的index.html,rank.html,score.html

global.js,rank.js,score.js

在index.html中,我使用iframe包含了rank.html和score.html。

在global.js中我声明了Var等级; &安培; global.html包含在rank.html& score.html。

我正在更新rank.js中的排名值,我想访问score.js中的更新值。在score.js中,我没有得到更新的值它给出了UNDEFINED值。

我不想在score.html中包含rank.js所以我创建了global.js&包含在html文件中。

这是我的代码,

的index.html

<html>
    <head>

    </head>
    <body>
<iframe src="../rank/rank.html" frameborder = "0" scrolling="no" width="50%" height = "100%"></iframe>
<iframe src="score.html" frameborder = "0" scrolling="no" width="50%" height = "100%"></iframe>

    </body>
</html> 

global.js

var rank;

score.js

$(document).ready(
        function(){     


                    setInterval(dataupdate, 10000);


    });
function dataupdate() { 

alert(rank) 

};

rank.js

$(document).ready(
            function(){     


                        setInterval(dataupdate, 10000);


        });
    function dataupdate() { 

    rank = "first";

    };

我想在score.js文件中更新排名值,以获取该值......

感谢.....

4 个答案:

答案 0 :(得分:1)

如果global.js包含在index.html中,则需要使用window.top.rank(如果index.html也可能存在于框架中,则需要使用window.parent.rank。)

答案 1 :(得分:1)

当您声明一个全局变量时,它会被创建为window对象的属性,即window.rank。您的主窗口和2个iframe具有单独的window个对象,因此从主框架分配的window.rank与从其中一个iframe访问的window.rank不同。

要从iframe内部访问主窗口对象的rank属性,可以使用parent.rank代替window.rank

答案 2 :(得分:0)

您应该在索引中保存变量,因为您只能从iframe

访问父变量
index 

var a=5;

-----------

rank

parent.a=6

现在得分可以读为parent.a为6

答案 3 :(得分:0)

window.parent.rank

window.top.rank