声明一个变量以在javascript中的多个文件中使用

时间:2014-01-16 16:07:15

标签: javascript var

我正在编辑一个网站。我有一个主页面和一个secundary页面。在主页面中,我希望有两个链接,都链接到同一个secundary页面。在secundary页面中,我有一个隐藏的表单,单击一个按钮时会出现该表单。我想在两个链接之间实现的差异是: - 当用户点击第一个链接时,正常显示secundary页面,表单隐藏(这已经有效,当单击按钮时,表单出现,使用slidetoggle功能)。 - 当用户点击第二个链接时,会出现显示该表单的secundary页面。

我正在尝试使用javascript,虽然我有非常非常原始的知识,我的想法是在索引(主)页面中创建一个名为initia = 0的变量,当用户点击第二个链接时,initia更改为1.然后在辅助页面文件中重用此变量,并检查initia是1还是0.但我认为它不是这样的。我该怎么办?

我现在的代码虽然不起作用,但是:

    //in the main page
    <script type="text/javascript">
    var inici = 0;
    $(document).ready(function(){ 
     $(".x").click(function()
     {
            inici = 2;
        });});
    </script>

//in the secundary page
    <script type="text/javascript">
        $(document).ready(function(){ 
            $(".msg_body").hide(); 
            $(".msg_head").click(function()
            {
                $(this).next(".msg_body").slideToggle();
            });//until here normal behaviour
            if (inici > 1) { //to check if it should b already opened
                $(".msg_body").show();
                inici = 0;
            }});
        </script>

由于

3 个答案:

答案 0 :(得分:0)

使用全局变量是不可能的。您应该尝试使用链接到域的LocalStorage

答案 1 :(得分:0)

您可以将“表单隐藏”版本的链接设为:

page.html

并且表单显示的那个是这样的:

page.html#form

(两者都使用相同的文件;第二部分最后只有一些额外的东西)

然后让你的JavaScript像这样:

$(document).ready(function(){ 
    if(document.location.hash !== "#form") {
        $(".msg_body").hide(); 
        $(".msg_head").click(function()
        {
            $(this).next(".msg_body").slideToggle();
        });
    }
 });

这意味着只有在URL中没有#form的情况下访问页面时,才会隐藏表单。无需使用任何inici变量。

答案 2 :(得分:0)

这不起作用(根据我的理解),因为当第二页上的Javascript开始运行时,主页面中的Javascript停止运行。因此,虽然点击链接时inici确实会被更改,但我相信第二页会看到一个新的inici实例,您将其初始化为0。

我认为更有效的方法是在点击相应链接后转移用户时将一些数据发布到第二页。然后,第二页可以读取POST数据并决定是否应该显示表单。