我正在开发一个相位游戏,该游戏将通过 iframe 嵌入到网站中。该游戏支持多种语言,因此我们已经开始使用访问该游戏的站点作为指标(phaser-game.com/ru 将使用俄语,phaser-game.com/ar 将使用阿拉伯语等) .
这是到目前为止的代码(通过window.addEventListener('load', getDomainSetLanguage);以下方式触发:
function getDomainSetLanguage()
{
let url = (window.location !== window.parent.location) ? document.referrer : document.location.href;
console.log('url = ' + url);
for (let i = 0; i < COUNTRIES_DOMAIN.length; i++)
{
if (url.indexOf(COUNTRIES_DOMAIN[i].URL) >= 0)
{
DOMAIN_ID = COUNTRIES_DOMAIN[i].ID;
LANGUAGE_ID = COUNTRIES_DOMAIN[i].LANGUAGE_ID;
break;
}
}
if (DOMAIN_ID === -1)
{
DOMAIN_ID = 1;
}
if (LANGUAGE_ID === -1)
{
LANGUAGE_ID = 1;
}
console.log('DOMAIN_ID = ' + DOMAIN_ID + "; LANGUAGE_ID = " + LANGUAGE_ID);
}
现在这在表面上工作正常。但是,游戏确实会时不时地触发重新加载,并且当游戏返回时,它现在会获得自己的 URL,而不是父级 / iframe 的 URL。
这是游戏语言默认为英语的结果。
请注意,这仅发生在 Chrome 和 Safari 中。FireFox 工作得很好。
有什么我想念的吗?或者还有什么我可以尝试的吗?
我试过记录document.referrerand的值document.location.href,但我只是收到有关权限和内容的浏览器错误,游戏默认为英语。
我从这里读到Chrome(可能还有 Safari)不会触发 iframe 中对象的 onload 功能,但我不确定这是否适用于我,因为我有很多其他与 onload 相关的功能可以工作.
需要说明的是,我无法修改iframe本身,因此任何解决方案都必须来自游戏本身。
鸿蒙传说
相关分类