postMessage】的更多相关文章

Javascript中要实现跨域通信,主要有window.name,jsonp,document.domain,cors等方法.不过在H5中有一种新的方法postMessage可以安全实现跨域通信,并且使用简单. 要使用postMessage,首先得检查浏览器是否支持该方法,postMessage属于window对象,检测方法如下: if('postMessage' in window){ }else{ console.log('浏览器不支持postMessage'); } postMessag…
a.html有个iframe载入b.com/login.html,当login完成时通知a.html页面登录完成并传递UserName 1.a.html 监听消息 window.addEventListener('message', function (event) { // 通过origin属性判断消息来源地址 //if (event.origin == 'http://127.0.0.1:10847') { console.log(event.data); alert(event.data+…
HTML5提出了一个新的用来跨域传值的方法,即postMessage(这个名字太通俗了所以你最好看看是不是自己写过一个同名的把它覆盖了).幸运的是IE8就开始支持了. 我们假设有两个网站,1.com与2.com,我在1.com的页面上通过iframe或window.open或超链接打开了一个2.com的网页,此时我要在2.com上做操作的时候,给1.com传值,让1.com有所变化.这个过程就是个跨域的过程. 如果你对window.open熟,你就会知道通过window.open打开的网页(我们…
一.h5 postMessage node http-server配置服务器 有关配置:请参考我的http://www.cnblogs.com/leee/p/5502727.html 我把文件夹a配置成http://192.168.1.100:8000 文件夹b配置成http://192.168.1.100:7000 父页面获取iframe两种方式 1,window.frames["goalNameFrame"] 这个goalNameFrame是iframe的name值 2,goalF…
2014-11-09 20:17:27http://jo2.org/html5-js-postmessage-tips/--点击数:2710     HTML5提出了一个新的用来跨域传值的方法,即postMessage(这个名字太通俗了所以你最好看看是不是自己写过一个同名的把它覆盖了).幸运的是IE8就开始支持了. 我们假设有两个网站,1.com与2.com,我在1.com的页面上通过iframe或window.open或超链接打开了一个2.com的网页,此时我要在2.com上做操作的时候,给1…
用 PostMessage.SendNotifyMessage.SendMessageCallback 等异步函数发送系统消息时,参数里不可以使用指针,因为发送者并不等待消息的处理就返回,接受者还没处理指针就已经被释放了. 5.在 Windows 2000/XP 里,每个消息队列最多只能存放 10,000 个 Post 的消息,超过的还没被处理的将不会被处理,直接丢掉.这个值可以改得更大:[HKEY_LOCAL_MACHINE/SOFTWARE/ Microsoft/Windows NT/Cur…
一些麻烦事儿 平时做web开发的时候关于消息传递,除了客户端与服务器传值还有几个经常会遇到的问题 1.页面和其打开的新窗口的数据传递 2.多窗口之间消息传递 3.页面与嵌套的iframe消息传递 4.上面三个问题的跨域数据传递 postMessage() 这些问题都有一些解决办法,但html5引入的message的API可以更方便.有效.安全的解决这些难题.postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档.多窗口.跨域消息传递. postMessag…
前言 之前简单讲解了利用script标签(jsonp)以及iframe标签(window.name.location.hash)来跨域交换数据,今天我们来学习一下HTML5的api,利用postMessage来跨域交换数据.和前面一些方式交换数据方式不同的是,利用postMessage不能和服务端交换数据,只能在两个窗口(iframe)之间交换数据,废话不多说,我们直接进入实战. 实战postMessage overview 上文中说,postMessage是用于两个窗口(iframe)之间交换…
转自:http://www.cnblogs.com/wshiqtb/p/3171199.html postMessagePortal.html 页面代码 <!DOCTYPE html> <title>标题</title> <link rel="stylesheet" href="styles.css"> <link rel="icon" href="http://apress.com…
解释: 跨文档消息传输Cross Document Messaging. 编写代码前注意判断浏览器是否支持Html5 实例: b页面向a页面发送消息. <!DOCTYPE> <html> <head> <title></title> </head> <body> 我是b页面 </body> <script type="text/javascript"> setTimeout(fu…
随着 HTML5 的发展,了解并熟悉 HTML5 的 API 接口是非常重要的.postMessage(send) 和 onmessage 此组 API 在 HTML5 中有着广泛的应用,比如 Web Workers 中应用此组 API 实现多个线程间 JavaScript 调用功能 ,Cross-document messaging 中实现两个不同域间 JavaScript 调用功能等等.本文主要介绍此组 API 在 Web Workers,Cross-document messaging,W…
有时我们可能会在某个程序中用到模拟按钮点击事件. 本文中的例子在MFC程序中调试通过,duilib的没试过,还需探索 不多说,上代码: #include "stdafx.h" #include "windows.h" #include "Psapi.h" #include "atlstr.h" #include <string.h> #include<iostream> using namespace…
postMessage 父页面 e.target.contentWindow.postMessage(messageData, '*'); /*******onMessage处理******/ function onMessageHandler(e){ var dataStr = e.data; try{ var dataJson = Ext.util.JSON.decode(dataStr); if(dataJson.options){ var options = Ext.decode(dec…
SendMessage.PostMessage原理 本文讲解SendMessage.PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级.中级.高级程序员进行理解,三个步骤分别为: 1.SendMessage.PostMessage的运行机制. 2.SendMessage.PostMessage的运行内幕. 3.SendMessage.PostMessage的内部实现. 注:理解这篇文章之前,必须先了解Windows的消息循环机制. 1.SendMessage.PostM…
英文原文 中文翻译 因为web的安全机制,浏览器的同源策略.在不同域之间做数据交换就会涉及到跨域.A域如果要实现向B域发关消息,多多少少要有对B域有一定控制权,最起码人家B域要接收你的消息啊. 最近发现几个内容不错.结构固定.定时更新的网站,于是想在浏览这些内容的同时,直接转到我的博客里来.但因为一来要调整部分内容,二来对方站不让爬(我的爬虫技巧也是很一般).就想着写个油猴子脚本把内容发到我的网站上. 很快我就写好了接收接口,接下来就是跨域发送消息了.我第一个想到的就是iframe的方式.当然也…
转自http://blog.csdn.net/young0325/article/details/6430664 Peekmessage和Getmessage都是向系统的消息队列中取得消息,不过性质不同. 若第一次向消息队列中取不到消息,则程序的主线程会被OS(操作系统)挂起;等到OS重新调度到该线程时,而且消息队列仍然是空的时,两者的性质不同: 若使用Getmessage(),则程序的主线程会仍被OS挂起. 若是用Peekmessage(),则程序会取得OS控制权,运行一段时间.此函数多用于处…
在做基于窗口的Windows程序的时候,我们避免不了要向窗口发送消息,有两种方式,一种是PostMessage,另外一种是SendMessage.关于这两个宏,我是通过狠狠的看MSDN才搞明白的,那里讲的是最权威的.它们的区别如下: 1.PostMessage会将消息压入窗口所在线程的消息队列,然后返回:而SendMessage则不经过消息队列,SendMessage可认为是直接调用了该窗口的窗口过程,因此在我们需要获得消息处理后的返回值的时候,就要用到SendMessage. 例如:当在程序中…
BOOL   PostMessage(          HWND   hWnd,             //   handle   of   destination   window          UINT   Msg,               //   message   to   post          WPARAM   wParam,     //   first   message   parameter          LPARAM   lParam       //…
HTML5中提供了在网页文档之间相互接收与发送信息的功能.使用这个功能,只要获取到网页所在窗口对象的实例,不仅仅同源(域+端口号)的web网页之间可以互相通信,甚至可以实现跨域通信. 浏览器支持程度:IE8+,firefox4+,chrome8+ opera10+ 1. 首先,要想接收从其他的窗口发过来的消息,就必须对窗口对象的message事件进行监听,如下代码: window.addEventListener("message", function(){},false); 2. 其…
JavaScript 跨域方式实现方式有很多,之前,一篇文章中提到了 JSONP 形式实现跨域.本文将介绍 HTML5 新增的 api 实现跨域:window.postMessage . 1 otherWindow.postMessage(message, targetOrigin); 2 3 otherWindow 4 其他窗口的一个引用,比如iframe的contentWindow属性.执行window.open返回的窗口对象.或者是命名过或数值索引的window.frames. 5 6 m…
 深入解析SendMessage.PostMessage 本文将使用C++语言,在MFC框架的配合下给出PostMessage.SendMessage等的使用方式与使用不当造成的后果(讨论均针对自定义的消息进行).如有什么错误,欢迎指正. 写过Windows程序的同学都知道PostMessage.SendMessage的区别,PostMessage函数调用发送之后,立即返回,不等待消息处理完成.而SendMessage则让调用的线程处于阻塞(BLOCk)状态,直到消息处理完成. 正由于这两个函数…
SendMessage.PostMessage原理 本文讲解SendMessage.PostMessage两个函数的实现原理,分为三个步骤进行讲解,分别适合初级.中级.高级程序员进行理解,三个步骤分别为: 1.SendMessage.PostMessage的运行机制. 2.SendMessage.PostMessage的运行内幕. 3.SendMessage.PostMessage的内部实现. 注:理解这篇文章之前,必须先了解Windows的消息循环机制. 1.SendMessage.PostM…
好久没有写文章,发一篇顶顶博客访问量.别人建议转一些比较好的代码也贴过来,但是我打算这里主要发自己原创的代码,所以么..流量该多少就多少吧... 回到主题,在webbrowser中点击某链接网上几乎都是用document对象模拟点击,这个方法基本能应对一般的情况,但是例如广告联盟的点击XXX就有检测机制(不多解释,你们懂的).所以完全模拟鼠标的点击事件就比较完美.于是我用了最常见的SendMessage. 接下来就要解决一个问题,webbrowser的句柄问题.从控件本身得到的句柄不是真正的浏览…
一:发送 window.postMessage("Hello, world", "http://127.0.0.1:8080"); 注意,必须要加上http://,后面的端口如果是80的话,不必写,就算写了,监听的时候e.origin也不必把端口带上 二:绑定监听事件 window.addEventListener("message", messageHandler, true); 注意,绑定事件的类型是message,而不是load 三:监听…
一.浏览器同源策略 首先我们需要了解一下浏览器的同源策略,关于同源策略可以仔细看看知乎上的一个解释.传送门 总之:同协议,domain(或ip),同端口视为同一个域,一个域内的脚本仅仅具有本域内的权限,可以理解为本域脚本只能读写本域内的资源,而无法访问其它域的资源.这种安全限制称为同源策略. ( 现代浏览器在安全性和可用性之间选择了一个平衡点.在遵循同源策略的基础上,选择性地为同源策略"开放了后门". 例如img script style等标签,都允许垮域引用资源.) 下表给出了相对 …
首先你会发现keybd_event函数中是没有窗口句柄作为参数的,好奇的你一定会觉得很奇怪,那是因为,keybd_event是全局模拟按键的,只对前台窗口(即当前的活动窗口)才可以,但是如果模拟的按键正好也是某个窗口的全局热键消息,那该窗口也能接收到的 而SendMessage .PostMessage是对指定句柄窗口都其作用的,对于做一些一外挂是非常有用的.例如可以做成这样的效果:即用SendMessage/PostMessage在某一个窗口模拟动作,而同时自己可以在其他窗口做其他事情,互不影…
1.自定义消息ID. #define WM_MY_MESSAGE (WM_USER+100)         WM_USER为windows系统为非系统消息保留的ID,这里至少要用100,因为其它控件的消息会占用一部分. 2. 定义消息处理函数. 消息处理函数为消息目标类的成员函数.首先应该在.h 文件中声明.这里以主窗口类为例,主窗口类名 CMainDialog,则首先在CMainDialog.h声明消息处理函数. protected: afx_msg LRESULT OnMyMessage(…
在项目中有应用到不同的子项目,通过不同的二级域名实现相互调用功能.其中一个功能是将播放器作为单独的二级域名的请求接口,其他项目必须根据该二级域名调用播放器.最近需要实现视频播放完毕后的事件触发,调用父窗口中的回调方法.普通的javascript很难实现跨域请求和调用的操作.通过jsonp方式实现起来复杂.不过通过Html的postMessage和onMessage可以轻松实现以上功能. postmessage方法 postMessage()方法允许来自不同源的脚本采用异步方式进行有限的通信,可以…
PostMessage:把消息投放到线程的消息队列,不能消息被处理就立即返回SendMessage:消息被处理完后才返回 几种发送消息的写法:   ::PostMessage(GetSafeHwnd(), WM_USER_THREADEND, 0, 0); //GetSafeHwnd()表示得到当前窗口句柄,所以这条语句是发送给当前窗口   GetParent()->PostMessage(WM_USER_THREADEND, 0, 0);//发送给父窗口    this->PostMessa…
WPARAM 和 LPARAM wParam和lParam 这两个是Win16系统遗留下来的产物,在Win16API中WndProc有两个参数:一个是WORD类型的16位整型变量:另一个是LONG类型的32位整型变量. 因此根据匈牙利命名法,16位的变量就被命名为wParam, 32位的变量就被命名为lParam. 而到了Win32API中,原来的16位变量也被扩展为32位,因此此时wParam和lParam的大小完全相同. 区别及习惯用法: MS在使用时两种参数分别代表不同的含义和内容,WPA…