我的页面上有多个动态帧。所有iframe都在同一个域下。 例如
<iframe src="data.php?id=1"> </iframe>
<iframe src="data.php?id=2"> </iframe>
<iframe src="data.php?id=3"> </iframe>
正如您所看到的,iframe链接到同一页面但ID不同。
所以我使用for循环将数据发送到iframe。(代码如下)
var iframes = document.getElementsByClassName('iframe');
for(var i = 0; i < iframes.length; i++)
{
iframes[i].contentWindow.postMessage("getName","http://localhost/data.php");
}
我不确定在postMessage
函数的origin参数中放入什么(即第二个参数)。
在iframe上我有这个代码来处理消息。
window.addEventListener("message", receiveMessage, false);
function receiveMessage(event)
{
//event.source.postMessage("hi", event.origin);
console.log('Message received');
}
但我在控制台中没有看到任何内容。
什么可能是错的?
更新
我发现我可以访问javascript函数中的内容,而不是使用postMessage
。
现在的问题是 - 我还没有想办法如何实现这一目标。
我想通过javascript访问iframe的textnode
元素的title
。
答案 0 :(得分:1)
这将获得iFrame的标题。
var iframes = document.getElementsByClassName('iframe');
for(var i = 0; i < iframes.length; i++){
iframes[i].contentWindow.document.getElementsByTagName('title')[0].innerHTML;
}