Javascript 如何通过angularJS将数据从主窗口传递到chrome应用程序中新创建的窗口?
我目前正在创建一个chrome应用程序,只是为了好玩和学习,然后我遇到了一个问题。在主窗口中,我创建了一个窗口,该窗口将显示您与您单击的名称的对话,但我不知道如何将数据传递到该新窗口。可能吗?如果是这样,怎么办?这是我的密码Javascript 如何通过angularJS将数据从主窗口传递到chrome应用程序中新创建的窗口?,javascript,windows,angularjs,google-chrome,google-chrome-app,Javascript,Windows,Angularjs,Google Chrome,Google Chrome App,我目前正在创建一个chrome应用程序,只是为了好玩和学习,然后我遇到了一个问题。在主窗口中,我创建了一个窗口,该窗口将显示您与您单击的名称的对话,但我不知道如何将数据传递到该新窗口。可能吗?如果是这样,怎么办?这是我的密码 chrome.app.window.create('views/templates/chatWindow.html', { 'bounds': { 'width': window.screen.availWidth,
chrome.app.window.create('views/templates/chatWindow.html', {
'bounds': {
'width': window.screen.availWidth,
'height': window.screen.availWidth
},
state: 'maximized',
resizable: false
});
请注意,我使用的是AngularJS,我在windows机器上工作
另外,我还有一个问题。这个新窗口有自己的控制器,那么,我如何获取传递的数据呢?选项1 的回调函数返回给您对象。 此对象具有contentWindow属性,该属性是新创建窗口中的
窗口
对象。有了此引用,您可以在document.body
对象上触发自定义事件,并在控制器中处理它
选项2
使用angular和URL的哈希传递数据。例如,您可以执行以下操作:
chrome.app.window.create('views/templates/chatWindow.html#/client/1234' //...
然后使用路由器和同一应用程序的代码来处理查看和操作。派对有点晚,但我希望这个答案能帮助其他人回答这个问题: 如果您已使用
chrome.windows.create
()创建了子窗口,则可以使用chrome的消息传递API将消息传递到此新创建的子窗口:
在您的家长(背景脚本)中,您可以执行以下操作:
chrome.runtime.sendmessage({
type: "a_message_type",
foo: "bar"
});
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Child Window</title>
<script src="jquery-3.5.1.min.js"></script>
<script src="child.js"></script>
</head>
<body>
<p> I'm the child window </p>
</body>
</html>
在子窗口的HTML中,您会看到一些如下代码:
chrome.runtime.sendmessage({
type: "a_message_type",
foo: "bar"
});
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Child Window</title>
<script src="jquery-3.5.1.min.js"></script>
<script src="child.js"></script>
</head>
<body>
<p> I'm the child window </p>
</body>
</html>
您可以尝试上的“在windows之间传递数据”部分。希望这有帮助。:)很抱歉我反应太晚了。我尝试了解决方案1,因为我没有使用ngRoute。我已经在chrome应用程序的文档中看到了,但我不明白如何使用它,然后你给了我如何使用的想法。谢谢,实际上你根本不需要使用ngRoute。在应用程序引导过程中,您可以检查
$window.location.hash
属性,并根据参数决定要运行应用程序的哪个部分。