0

我试图让这个函数来构建我给它的数据并将它显示在我的 IFRAME 中。我只是不能让它显示任何东西。基于此代码,有什么想法吗?

function playBlackjack()
{
   var data = "<table border=0 style='margin:auto'>"
   data += "<tr>"
   data += "<td><form><input type="BUTTON" onClick="Javascript:dealCards()" value="Deal > > >"></form></td>"
   data += showCards(0)
   data += "<td><form><input type="BUTTON" onClick="Javascript:hitCard()" value="< < < Hit Me"></form></td>"
   data += "</tr></table> "
   return productarea.document.writeln(data)
   productarea.document.close()
}
4

1 回答 1

0
  1. 你确定你没有跨域问题。您不能操纵跨域 iframe 的内容。
  2. 如果它在不同的域上,您可以使用消息传递。例如,如果文档 A 包含一个包含文档 B 的 iframe 元素,并且文档 A 中的脚本调用了文档 B 的 Window 对象上的 postMessage(),那么将在该对象上触发一个消息事件,标记为源自文档 A。文档 A 中的脚本可能看起来像

    var o = document.getElementsByTagName('iframe')[0];
    o.contentWindow.postMessage('Hello world', 'http://b.example.org/');
    

要为传入事件注册事件处理程序,脚本将使用 addEventListener()(或类似机制)。例如,文档 B 中的脚本可能如下所示:

window.addEventListener('message', receiver, false);
function receiver(e) {
  if (e.origin == 'http://example.com') {
    if (e.data == 'Hello world') {
      e.source.postMessage('Hello', e.origin);
    } else {
      alert(e.data);
    }
  }
}

该脚本首先检查域是预期域,然后查看消息,它要么显示给用户,要么通过将消息发送回最初发送消息的文档来响应。

通过从父页面调用 iframe 中的 JavaScript 代码

通过http://dev.w3.org/html5/postmsg/#web-messaging

于 2013-05-06T05:35:09.440 回答