加载前在 iframe 中附加用户名?
Posted
技术标签:
【中文标题】加载前在 iframe 中附加用户名?【英文标题】:Appending username in Iframe before loading? 【发布时间】:2018-01-07 20:56:51 【问题描述】:假设我有两个示例网站,例如 web_1 和 web_2。我正在使用 iframe 将 web_1 访问到 web_2。
现在我的问题是 web_2 中的用户名可用。我想在加载之前将此用户名传递给 iframe。然后我可以在 web_1 的应用程序控制器中使用或访问它。这两个网站都是用 ruby on rails 开发的。
【问题讨论】:
jQuery/javascript: accessing contents of an iframe的可能重复 【参考方案1】:“我的应用程序控制器”中的代码将在 Web 服务器而不是浏览器上运行。因此,您不能将“用户名”从 parent(web_2) 发送到 iframe(web_1) 的“应用程序控制器”。
但是,您始终可以将“用户名”从父级 (web_2) 发送到 iframe(web_1) 的客户端 javascipt。 为此,请使用 html5 postmessage api 在客户端 JavaScript 中进行通信。
使用iframeEl.contentWindow.postMessage
向 iframe 发送消息。使用 window.addEventListener('message')
在 iframe 中接收消息。
示例:
// In parent javascript(web_2)
window.onload = function ()
var iframeWin = document.getElementById("da-iframe").contentWindow,
form = document.getElementById("the-form"),
myMessage = document.getElementById("my-message");
;
// In iframe javascript (web_1)
function displayMessage (evt)
var message = "I got " + evt.data + " from " + evt.origin;
document.getElementById("received-message").innerHTML = message;
if (window.addEventListener)
// For standards-compliant web browsers
window.addEventListener("message", displayMessage, false);
else
window.attachEvent("onmessage", displayMessage);
【讨论】:
以上是关于加载前在 iframe 中附加用户名?的主要内容,如果未能解决你的问题,请参考以下文章