首页 > js 怎么跨页面调用变量?有哪些简单的办法??

js 怎么跨页面调用变量?有哪些简单的办法??

实际情况是这样这个lechart.js里面定义了三个变量D3,D1,D0,现在我在另一个html页面引入这个js,然后在该页面下调用lechart.js里面定义过的变量D3,D1,D0,,但是因为作用域的问题肯定就拿不到了会报错,请问怎么解决这个问题呢???怎么才能拿到这个变量?

补充:我现在修改js里面吧var去掉让局部变量变为全局变量 可这样还是not defined,求解???


这样吧数据传入到方法里面是可以正常运行的,拿出来就不行了,我也知道是D3没有找到,但是该怎么来写呢??求各位大神指点


跨页面前端用cookie或者html5里的local Storage


你都知道是作用域的问题了,当然用作用域来解决。。。。你的D3之类的变量设置成全局变量的属性


这里的basicDataChart,你调这方法之前D3是不存在的


你好歹代码帖全点呀


1.html文件里,你是先用了D3 D1 D0 再调的方法,但是这三个变量的赋值是写在方法里面的,还没有调用方法,也就还没有执行D3 = ..... 的语句,也就是没有定义全局变量,自然会是not defined,js是顺序执行的。举个例子。

function msg(val) {
                a = "111";//全局变量
                console.log('这是个方法:' + val);
            }
            msg("3333");//先调用方法
            console.log(a);//再使用全局变量
function msg(val) {
                var a = "111";//局部变量
                console.log('这是个方法:' + val);
            }
            msg("3333");//调用方法
            console.log(a);//使用局部变量
function msg(val) {
                a = "111";//在方法里赋值全局变量
                console.log('这是个方法:' + val);
            }
            console.log(a);//先使用全局变量
            msg("3333");//再调用方法

对比一下这三段代码的区别。
2.把给value1 value2的赋值写在js方法里面,调用函数的时候自然就给它赋值了。

可以多看看js变量作用域的问题。js变量以及其作用域详解

我自己试验所得,不知道解释的是不是正确。欢迎大神指摘。


这个不是应该用闭包或是创建一个新的对象么?

D3 D1 D0 算是basicDataChart 的配置,使用闭包或是对象都可以呀!

简单写个闭包的吧

(function (){
    var D3,D1,D0;
    function  basicDataChart(){
        // TO DO
    }
    basicDataChart.getD=fucntion(){
        return [D3,D1,D0]; // 自己改成想要的结构
    }
    window.basicDataChart=basicDataChart;
})();
【热门文章】
【热门文章】