Javascript 加载前是否在Iframe中追加用户名?

Javascript 加载前是否在Iframe中追加用户名?,javascript,jquery,ruby-on-rails,ruby-on-rails-4,iframe,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,Iframe,假设我有两个示例网站,如web_1和web_2。我正在使用iframe将web_1访问到web_2 现在我的问题是,在web_2中,用户名是可用的。我想在加载iframe之前将此用户名传递给iframe。然后我可以在我的web_1应用程序控制器中使用或访问它。这两个网站都是用ruby on rails开发的。您的“我的应用程序控制器”中的代码将在web服务器上运行,而不是在浏览器上运行。因此,您不能将“用户名”从父级(web_2)发送到iframe(web_1)的“应用程序控制器” 但是,您始终

假设我有两个示例网站,如web_1和web_2。我正在使用iframe将web_1访问到web_2

现在我的问题是,在web_2中,用户名是可用的。我想在加载iframe之前将此用户名传递给iframe。然后我可以在我的web_1应用程序控制器中使用或访问它。这两个网站都是用ruby on rails开发的。

您的“我的应用程序控制器”中的代码将在web服务器上运行,而不是在浏览器上运行。因此,您不能将“用户名”从父级(web_2)发送到iframe(web_1)的“应用程序控制器”

但是,您始终可以将“username”从父级(web_2)发送到iframe(web_1)的客户端javascipt。 为了实现这一点,请在客户端Java脚本中使用

使用
iframeEl.contentWindow.postMessage
向iframe发送消息。使用
窗口接收iframe内的消息。addEventListener(“消息”)

例如:
//在父javascript(web_2)中
window.onload=函数(){
var iframeWin=document.getElementById(“da iframe”).contentWindow,
表单=document.getElementById(“表单”),
myMessage=document.getElementById(“我的消息”);
};
//在iframe javascript中(web_1)
功能显示信息(evt){
var message=“我从“+evt.origin”获得“+evt.data+”;
document.getElementById(“收到的消息”).innerHTML=消息;
}
if(window.addEventListener){
//适用于符合标准的web浏览器
window.addEventListener(“消息”,displayMessage,false);
}
否则{
attachEvent(“onmessage”,displayMessage);
}
您的“我的应用程序控制器”中的代码将在web服务器上运行,而不是在浏览器上运行。因此,您不能将“用户名”从父级(web_2)发送到iframe(web_1)的“应用程序控制器”

但是,您始终可以将“username”从父级(web_2)发送到iframe(web_1)的客户端javascipt。 为了实现这一点,请在客户端Java脚本中使用

使用
iframeEl.contentWindow.postMessage
向iframe发送消息。使用
窗口接收iframe内的消息。addEventListener(“消息”)

例如:
//在父javascript(web_2)中
window.onload=函数(){
var iframeWin=document.getElementById(“da iframe”).contentWindow,
表单=document.getElementById(“表单”),
myMessage=document.getElementById(“我的消息”);
};
//在iframe javascript中(web_1)
功能显示信息(evt){
var message=“我从“+evt.origin”获得“+evt.data+”;
document.getElementById(“收到的消息”).innerHTML=消息;
}
if(window.addEventListener){
//适用于符合标准的web浏览器
window.addEventListener(“消息”,displayMessage,false);
}
否则{
attachEvent(“onmessage”,displayMessage);
}