简单的跨域iframe postMessage可在jsfiddle中使用,但不能在本地使用

马达拉的幽灵

我正在尝试与iframe另一个域上的进行合作,但被困在“ Hello World!”中 阶段。

我有两个文件,分别在两个静态服务器上提供。我通过两个不同的域和不同的端口引用这些文件。

http://localhost:8080/index.html

<iframe id="target" src="http://hocallost:8081/iframe.html" frameborder="1"></iframe>

<script>
    var target = document.getElementById('target');
    target.contentWindow.postMessage('hello', '*');
</script>

http://hocallost:8081/iframe.html

<script>
    window.addEventListener('message', function receiveMessage(message) {
        console.log(message);
        document.body.textContent = "Hello World!";
    }, false);
</script>

现在,在本地,消息事件处理程序甚至没有触发。我没有消息,console.log没有被调用,我的断点没有中断。

当我获取index.html的源并将其粘贴到JSFiddle时,它就可以工作了!事件触发,我得到了Hello World。

现在,很明显,我将无法在生产应用程序上依赖JSFiddle,我在做什么错?我在这里想念什么?JSFiddle是否在幕后做一些我做不到的事情?

丹尼斯·塞古雷

您似乎不必等待目标iframe的加载。

var target = document.getElementById('target');
target.onload = function(){
    target.contentWindow.postMessage('hello', '*')
}

注意:部署代码时,请不要忘记用相关的原点替换'*'。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

简单示例(DataTables包)可在JSFiddle上使用,但不能在本地使用

来自分类Dev

XPath可在浏览器中使用,但不能在简单的HTML DOM中使用

来自分类Dev

简单的AddListener,可在代码笔中使用,但不能在Chrome浏览器中使用

来自分类Dev

简单的POST请求可在Postman中使用,但不能在浏览器中使用

来自分类Dev

XPath可在浏览器中使用,但不能在简单的HTML DOM中使用

来自分类Dev

跨域postMessage,标识iFrame

来自分类Dev

jQuery可在JSFiddle中使用,但不能在本地RoR中使用。TypeError?

来自分类Dev

简单的求和函数可以在jsfiddle中使用,但不能在Ionic上使用,我想念的是什么?

来自分类Dev

使用跨网域在iframe javascript中获取iframe属性

来自分类Dev

javascript代码可在jsfiddle中使用,但不能在浏览器中使用

来自分类Dev

使用PostMessages跨域iframe访问-访问被拒绝

来自分类Dev

使用PostMessages跨域iframe访问-访问被拒绝

来自分类Dev

简单的REST应用程序可在本地运行,但不能在heroku中运行

来自分类Dev

jQuery Lightbox代码可在JSFiddle上使用,但不能在Wordpress中使用

来自分类Dev

嵌入式Ruby宝石可在本地使用,但不能在生产中使用

来自分类Dev

具有“ slidedown”功能的横幅广告可在我的jsfiddle中使用,但不能在实际环境中使用

来自分类Dev

如何使用postMessage发送跨域数据?

来自分类Dev

如何使用postMessage发送跨域数据?

来自分类Dev

简单的iFrame不显示某些跨域页面

来自分类Dev

简单的iFrame不显示某些跨域页面

来自分类Dev

本地AJAX呼叫远程站点可在Safari中使用,但不能在其他浏览器中使用

来自分类Dev

SSH可在Windows虚拟机中使用,但不能在本地Ubuntu计算机上使用

来自分类Dev

jQuery自动完成功能可在Jsfiddle上使用,但不能在页面上使用

来自分类Dev

jQuery代码可在Codepen / jsfiddle上使用,但不能在html页面上使用

来自分类Dev

jQuery lavalamp样式可在Codepen上使用,但不能在jsfiddle上使用

来自分类Dev

Javascript可在jsfiddle上使用,但不能在移动设备上使用

来自分类Dev

Vans Javascript函数可在JsFiddle上使用,但不能在网站上使用?

来自分类Dev

HTML 可以在 Fiddle 中使用,但不能在本地使用

来自分类Dev

简单的ScriptBlock在本地工作,但不能在远程工作

Related 相关文章

  1. 1

    简单示例(DataTables包)可在JSFiddle上使用,但不能在本地使用

  2. 2

    XPath可在浏览器中使用,但不能在简单的HTML DOM中使用

  3. 3

    简单的AddListener,可在代码笔中使用,但不能在Chrome浏览器中使用

  4. 4

    简单的POST请求可在Postman中使用,但不能在浏览器中使用

  5. 5

    XPath可在浏览器中使用,但不能在简单的HTML DOM中使用

  6. 6

    跨域postMessage,标识iFrame

  7. 7

    jQuery可在JSFiddle中使用,但不能在本地RoR中使用。TypeError?

  8. 8

    简单的求和函数可以在jsfiddle中使用,但不能在Ionic上使用,我想念的是什么?

  9. 9

    使用跨网域在iframe javascript中获取iframe属性

  10. 10

    javascript代码可在jsfiddle中使用,但不能在浏览器中使用

  11. 11

    使用PostMessages跨域iframe访问-访问被拒绝

  12. 12

    使用PostMessages跨域iframe访问-访问被拒绝

  13. 13

    简单的REST应用程序可在本地运行,但不能在heroku中运行

  14. 14

    jQuery Lightbox代码可在JSFiddle上使用,但不能在Wordpress中使用

  15. 15

    嵌入式Ruby宝石可在本地使用,但不能在生产中使用

  16. 16

    具有“ slidedown”功能的横幅广告可在我的jsfiddle中使用,但不能在实际环境中使用

  17. 17

    如何使用postMessage发送跨域数据?

  18. 18

    如何使用postMessage发送跨域数据?

  19. 19

    简单的iFrame不显示某些跨域页面

  20. 20

    简单的iFrame不显示某些跨域页面

  21. 21

    本地AJAX呼叫远程站点可在Safari中使用,但不能在其他浏览器中使用

  22. 22

    SSH可在Windows虚拟机中使用,但不能在本地Ubuntu计算机上使用

  23. 23

    jQuery自动完成功能可在Jsfiddle上使用,但不能在页面上使用

  24. 24

    jQuery代码可在Codepen / jsfiddle上使用,但不能在html页面上使用

  25. 25

    jQuery lavalamp样式可在Codepen上使用,但不能在jsfiddle上使用

  26. 26

    Javascript可在jsfiddle上使用,但不能在移动设备上使用

  27. 27

    Vans Javascript函数可在JsFiddle上使用,但不能在网站上使用?

  28. 28

    HTML 可以在 Fiddle 中使用,但不能在本地使用

  29. 29

    简单的ScriptBlock在本地工作,但不能在远程工作

热门标签

归档