问题标签 [postmessage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
html - 歌剧 11.x 中的 html 5 postmessage
我在 iframe 中使用这种结构将其高度发送到父窗口:
父窗口中有一个监听器:
此代码适用于 ff、chrome、safari、ie9,可能适用于 ie8,但不适用于歌剧 11(尽管蜻蜓没有显示错误)。我认为ie会有一些问题,但最后一个版本的opera不会。或者我做错了什么?
windows - PostMessage() 消息在 Windows 中是否按顺序显示?
一般的问题是,如果我从一个单独的工作线程向 Windows 消息泵发布多条消息,它们会按照我发送的顺序出现在目的地吗?IE..
m_hUsers 是我从工作线程向其发送消息的窗口的句柄 (HWND)。那么,WM_BULKPROCESS 是否总是首先显示在窗口中(因此由该对话框类中的处理程序处理),或者它们是否可能出现故障,即 WM_BULKDONE 在 WM_BULKPROCESS 之前得到处理,即使它是最后发送的?
cross-domain - 使用 postMessage 跨域 iframe 调整大小
我已经在这里阅读了所有跨域 iframe 帖子(感谢大家!)和其他地方。
跨域 iframe 调整大小的 postMessage 脚本? 在 Firefox 5 及更高版本中运行良好。每次在 iframe 中完美地单击页面时,它都会调整 iframe 的大小。
但它根本不会在我电脑上的 IE(7 8 或 9)中调整大小。我检查了安全设置,并检查了 IE 中用于跨域访问的设置以启用。
postMessage 在 IE 中不起作用吗?- 或者还有什么需要补充的吗?谢谢
javascript - 如何正确使用 postMessage 与 html5 和现代浏览器进行跨域消息传递?我仍然收到错误
我确定这里出了点问题,但我不能完全指出它......这里的例子表现得很好,控制台上没有任何通知或错误,所以这意味着我的浏览器支持使用 html5 的跨域消息传递(当然可以,它是 Chrome 14 ..)。
我的代码或多或少做了以下事情:在 WebsiteA.com 中加载的脚本创建了一个 iframe 并将其附加到 WebsiteA.com 的文档中。附加的框架将包含 WebsiteB.com,当它被加载时,它必须向它的父网站 WebsiteA.com 发送一条消息,告诉它 WebsiteB.com 已准备好接收一些 JSON。当 WebsiteA.com 收到这条消息时,它会发回 JSON。
所以 WebsiteA.com 前面有一行,</body>
就像这样:<script scr="http://WebsiteB.com/load-my-iframe.js" type="text/javascript"></script>
,在里面load-my-iframe.js
,我有以下内容:
这样就创建了 iframe 元素,将其附加到 WebsiteA.com 的文档并等待它说它准备好了(我猜......)。在 WebsiteB.com 上,我src
在 WebsiteA.com 的文档中加载了 iframe 的 child.html 文件,该文件具有以下内容:
现在奇怪的东西:
遗憾的是,我不拥有 WebsiteA.com 和 WebsiteB.com,但我设法在一个顶级域和一个子域(以 .no.de 结尾)之间运行。它确实有效,但在 Google Chrome 14 的控制台中,我得到了经典的. html5demos中的示例工作正常,没有此错误。Unsafe JavaScript attempt to access frame with URL http://WebsiteA.com/ from frame with URL http://WebsiteB.com/child.html. Domains, protocols and ports must match.
为什么我会收到此错误以及如何摆脱它?
c# - PostMessage WM_KEYDOWN 发送多个键?
我有这个代码:
此代码发送右箭头键,我想发送 ALT+CTRL+RIGHT 我试过这个:
但它不起作用...
有任何想法吗?
c++ - CtrlList 通过 postmessage 处理通知插入项目
所以这是我的问题,我有一个CtrlList
,我想通过PostMessage
(asyncron) 插入项目,因此消息LVM_INSERT_MESSAGE
,将在轮到他的时候处理,但问题是我需要为 分配内存LVITEM
,所以我不在我插入物品之前不要松开它。但是在我退出函数后松开指向已分配项目的指针之后。而且由于插入项目创建另一个项目,我发现很难释放我分配的内存LVITEM
。
我的解决方案是因为LVM_INSERT_MESSAGE
发送LVN_INSERT_MESSAGE
通知,在该通知上调用一个函数,但获取 lvitem 的唯一方法是抛出一个 lparam,但 on_notify 有 ( NMHDR *pNMHDR, LRESULT *pResult
) 参数。你能给我一个释放内存的解决方案吗,我必须用 postmessage 插入它,不要告诉我使用 send message 或函数 insertitem 。谢谢你。
javascript - 与 addEventListener 的竞争条件。什么时候绑定?
我正在使用发布消息来动态调整 iframe 的高度。保存 iframe 的 html 添加了一个侦听器,该侦听器将触发帧调整大小。父级上的(简化的)相关代码如下所示:
在 iframe 的源上,我在加载时触发 postMessage。基本上我有一个id为outerDiv的div,我想发送它的高度。相关的javascript代码是:
我现在的问题是这只偶尔有效。我假设在添加事件侦听器和触发发布消息之间存在竞争条件。我依赖于在发布消息被触发之前绑定事件侦听器。确保这一点的适当方法是什么?两者都必然window.onload
。这些地址是否相同window
,这是一个/问题吗?
html - HTML5 PostMessage 跨域问题
我正在尝试使用 HTML5 方法“postMessage”。我知道这种方法只适用于“现代”浏览器,但对于我的客户群来说,这已经足够了。
这是我的情况:域“abc.com”上的浏览器窗口在域“xyz.com”上打开一个新窗口。我拥有这两个域,我可以将我需要的任何 javascript 放在任何一边。据我所知,我应该能够使用“postMessage”在两个窗口之间发送消息。这适用于 Chrome,但不适用于 IE 9。我无法从子窗口获取对父窗口的引用,反之亦然。如果两个窗口都在同一个域上,我没有问题。
那么,这是 IE 实现“postMessage”的错误(“功能”)吗?有什么办法可以完成我想做的事情吗?
非常感谢!
javascript - 如何在 Javascript 中使用 postMessage()?
是否可以使用postMessage()
Javascript 中的方法进行跨域、、、POST
等GET
调用PUT
?如果是这样,怎么做?以及如何传递标头和数据?