开发者社区> 问答> 正文

两个html页面引入同一个js文件,如何共享一个变量?

如题:

有两个html文件在同一文件夹下,他们共同调用一个album.js文件,文件中有几个全局变量。

遇到的问题:

我想在album.html中引入album.js的时候生成的几个变量能够继续在photos.html中使用,不需要再次发送请求。

album.html跳转到photos.html的时候是进行 <a> 标签跳转的!

尝试方法:

                1.url传递参数-(这个太明显了,放弃)

                2.jquery.cookie这个可行是可行,但是比较麻烦。

其他方法:

                希望大牛解惑一二!

文件结构目录如图:![screenshot](https://oss-cn-hangzhou.aliyuncs.com/yqfiles/95345bb34fe5e6ab599a8eebd7febc31bb2072f5.png)

展开
收起
a123456678 2016-07-14 16:28:56 5033 0
1 条回答
写回答
取消 提交回答
  • 最原始的写法:

    (function(global) {
     
        var hello = 'abc';
     
        global.hello = hello; // 将当前闭包内的某个变量绑定到全局环境
     
    }) (this);
    
    
    这里有一个知识点,就是:
    传统浏览器中的javascript环境,全局对象的this默认绑定的是window实例,而全局环境的变量,默认会绑定到window对象上,也即成为window对象的属性。比如:
    
    <html>
        <head>
        <script type="text/javascript">
        var test = 'test';
        </script>
        </head>
        <body>
        <script type="text/javascript">
        console.log(this.test); // test
        console.log(window.test); // test
        console.log(test); // test
        </script>
        </body>
    </html>
    
    
    所以综上所述:
    
    // a.js
    (function(global, config) {
         
        console.log(config); // 输出全局环境定义的变量config
     
        var hello = 'abc';
     
        global.hello = hello; // 将当前闭包内的某个变量绑定到全局环境
     
     
    }) (this, this.config || {});
    在某个html页面中:
    
    <html>
        <head>
        <script type="text/javascript">
        var config = { a: 'a' };
        </script>
        <script type="text/javascript" src="a.js"></script>
        </head>
        <body>
        <script type="text/javascript">
        console.log(hello);
        </script>
        </body>
    </html>
    2019-07-17 19:56:32
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
在 IoT 设备进行 JavaScript 开发的探索之路 立即下载
JavaScript 语言在引擎级别的执行过程 立即下载
天猫HTML5互动技术实践 立即下载