从原始窗口访问对象和变量

时间:2015-04-06 00:15:43

标签: dart dart-html

在我的应用程序中,我想打开一个新窗口,其中包含另一个带有另一个dart脚本的html页面。我希望新窗口的脚本能够访问主应用程序中的变量和对象。

的index.html     

<html>
<head>
</head>
<body>
  <button id="btn">open</button>
  <script type="application/dart" src="main.dart"></script>
  <script data-pub-inline src="packages/browser/dart.js"></script>
</body>
</html>

main.dart     

import 'dart:html';

// This object should be accessible from pop.dart
var sharedObject = {
    'string1': 'hello',
    'string2': 'hello again'
};

void main() {
    querySelector('#btn')
        ..text = 'Pop it'
        ..onClick.listen(
                    (event) => popupWindow());;
}

void popupWindow() {
    // Open the popup window
    var secondWindow = window.open('pop.html', 'my popup');
}

pop.html     

<html>
<head>
</head>
<body>
    <button id="closeBtn">close it</button>
    <div id="poptext"></div>
    <script type="application/dart" src="pop.dart"></script>
    <script data-pub-inline src="packages/browser/dart.js"></script>
</body>
</html>

pop.dart     

import 'dart:html';

// this does not work
var sharedObject = window.opener.sharedObject;

main() {
    print('in pop');
    DivElement el = querySelector('#poptext');
    el.text = sharedObject['string1'];
}

我也尝试使用JS Interop在第一个窗口的上下文中存储要共享的对象,但是我找不到从弹出窗口访问它的方法。

请建议一种方法来完成这项工作。我也愿意接受其他想法以实现目标。

0 个答案:

没有答案