项目场景:
针对上一篇文章Layer - html父网页-unity webgl子页面-unity三者信息进行交互出现的一些问题,加以解决。
问题描述:
在父页面调用子页面的方法之前,需要获取当前子页面层,但是网上有很多关于Layer 父页面与子页面通信的文章,用到的方法是这样的,代码如下:
function insertReset(){
var frameId=document.getElementById(‘insert-form’).getElementsByTagName(“iframe”)[0].id;
$(’#’+frameId)[0].contentWindow.myReset();
}
'insert-form’这个id是Layer.open里的一个参数,这里有一个问题,问题是已经获取到了webgl子页面,但无法调用webgl子页面方法。
除此之外还有一个特别的问题,与代码无关,但影响你测试,这个问题是在你进行通信的时候,会出现跨域问题的报错,导致无法进行通信。
解决方案:
第一个问题的解决方案:
使用如下代码进行调用:
index=layer.index;
var iframeWin = window['layui-layer-iframe' + index];
iframeWin.UnityFunClickBT();
第二个问题的解决方案:必须将你的测试网页和webgl项目文件部署到服务器上,不要直接打开,使用链接的方式打开即可正常运行。