2012-07-19 65 views
1

我有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 rank; & global.js包含在rank.html & score.html中。

我正在更新rank.js中rank的值,我想要访问score.js中的更新值。在score.js中我没有得到更新的值它给出了未定义的值。

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

这里是我的代码,

的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文件如何访问该值的更新值...

感谢.....

+0

是global.js包含在index.html或两者score.html和rank.html? – 2012-07-19 08:53:54

+0

发布小型代码示例说明您的问题。整个代码墙很难理解。 – 2012-07-19 08:54:39

+0

这是订购你的脚本文件的问题。在声明任何想要从global.js访问变量的文件之前,声明global.js文件。 – 2012-07-19 08:54:49

回答

1

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

对于访问一个iframe内部的主窗口对象的阶性,您可以用parent.rank代替window.rank

+0

谢谢,它将真的对我有用...谢谢 – Amit 2012-09-17 05:36:14

0

你应该继续保留在指数中varibale,因为你可以只有从IFRAME访问父变量

index 

var a=5; 

----------- 

rank 

parent.a=6 

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

0

尝试

window.parent.rank 

window.top.rank 
1

如果global.js包含在index.html的,那么你需要使用window.top.rank(或window.parent.rank如果index.html的也可能存在一个框架)。