我有一个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长度。为什么呢?
答案 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