Raphael.js:如何将Paper.set()传递给我的另一个javascript?

时间:2011-05-19 07:56:55

标签: jquery javascript-events javascript raphael

我有一个index.html页面,其中包含一个按钮id="my-btn"

<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>My INDEX PAGE</title>
    </head>
    <body>
        <div id="my-canvas"></div>
        <br><input type="button" id="my-btn" value="OPEN NEW WINDOW"/>
        <script src="js/jquery-1.5.1.js"></script>
        <script src="js/raphael.js"></script>
        <script src="js/my-graph.js"></script>
        <script src="js/my.js"></script>
    </body>
    </html>

js / my.js my-graph.js 调用createCircle函数,并处理按钮点击事件,点击my-btn按钮后,将弹出一个新的浏览器窗口,其中包含新页面( test.html

**my.js:**
    MyTest.createCircle();
    $('#my-btn').click(function(){  
      window.open('test.html', 'testwindow');
    });

我-graph.js:

MyTest= function(){

     var paper = Raphael("my-canvas", 320, 200);
         var st=paper.set();

    return {
       createCircle: function(){
                st.push(
                   paper.circle(10, 10, 5),
                   paper.circle(30, 10, 5)
                 );


            }
       getSet: function(){
                 return st;
        }   

    };


}();

在新浏览器窗口中打开新页面( test.html ):

的test.html:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>TEST</title>
</head>
<body>
    <div id="my-name"></div>
    <script src="js/jquery-1.5.1.js"></script>
    <script src="js/my-graph.js"></script>
    <script src="js/test.js"></script>
</body>
</html>

在新页面中,将调用 test.js ,我想传递 Paper.set() {{1} }从 my-graph.js 到此test.js并输出st作为此页面的内容

JS / test.js

st.length

但是我总是在新弹出的页面中获得0长度。为什么呢?

1 个答案:

答案 0 :(得分:0)

所以你打开一个新页面,脚本引用相同的代码 作为另一页

那个剂量意味着它们具有相同的状态。 新页面将从评估中获得自己的状态 脚本本身

您可以做的是保存

的引用
 var w = window.open('test.html', 'testwindow');

返回您可以使用它来调用新页面上的函数

或者您可以使用jquery在开始页面上执行所有代码 并使用该窗口对象作为您的上下文

var w = window.open('test.html', 'testwindow');
$(w).ready(function() {
  $("body", w).append(mystuff);
});

raphael对象被设置为一张纸,我认为不会是什么意思 发生在纸张之间的时候发生的事情:S