第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

javascript - 重新加載 iframe 內(nèi)容后獲取 iframe 的 URL

javascript - 重新加載 iframe 內(nèi)容后獲取 iframe 的 URL

素胚勾勒不出你 2021-10-14 13:00:22
我正在開發(fā)一個(gè)相位游戲,該游戲?qū)⑼ㄟ^ iframe 嵌入到網(wǎng)站中。該游戲支持多種語言,因此我們已經(jīng)開始使用訪問該游戲的站點(diǎn)作為指標(biāo)(phaser-game.com/ru 將使用俄語,phaser-game.com/ar 將使用阿拉伯語等) .這是到目前為止的代碼(通過window.addEventListener('load', getDomainSetLanguage);以下方式觸發(fā):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);}現(xiàn)在這在表面上工作正常。但是,游戲確實(shí)會(huì)時(shí)不時(shí)地觸發(fā)重新加載,并且當(dāng)游戲返回時(shí),它現(xiàn)在會(huì)獲得自己的 URL,而不是父級(jí) / iframe 的 URL。這是游戲語言默認(rèn)為英語的結(jié)果。請(qǐng)注意,這僅發(fā)生在 Chrome 和 Safari 中。FireFox 工作得很好。有什么我想念的嗎?或者還有什么我可以嘗試的嗎?我試過記錄document.referrerand的值document.location.href,但我只是收到有關(guān)權(quán)限和內(nèi)容的瀏覽器錯(cuò)誤,游戲默認(rèn)為英語。我從這里讀到Chrome(可能還有 Safari)不會(huì)觸發(fā) iframe 中對(duì)象的 onload 功能,但我不確定這是否適用于我,因?yàn)槲矣泻芏嗥渌c onload 相關(guān)的功能可以工作.需要說明的是,我無法修改iframe本身,因此任何解決方案都必須來自游戲本身。
查看完整描述

1 回答

?
鴻蒙傳說

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊

let url = (window.location !== window.parent.location) ? document.referrer : document.location.href;

代碼中的這一行使得當(dāng)您在 iframe 中時(shí),document.referrer用作確定語言的 URL。


根據(jù)Document.referrer 上的MDN 頁面:


該Document.referrer屬性返回鏈接到此頁面的頁面的 URI。


在 內(nèi)<iframe>,Document.referrer最初將設(shè)置為與href父窗口的相同的值Window.location。


這意味著它可以在初始加載時(shí)正常工作,正如您所經(jīng)歷的那樣。據(jù)我所知,規(guī)范并沒有明確說明如何處理重新加載。這可能是瀏覽器行為差異的原因。認(rèn)為重新加載后它應(yīng)該是空的并不是太瘋狂,因?yàn)楫?dāng)時(shí)它不是從父頁面加載的。


另一種解決方案是使用window.parent.location.href,它始終引用iframe父窗口的 URL (在 document.referrer 和 window.parent.location.href 之間的區(qū)別中閱讀更多內(nèi)容)。


您的代碼行可能如下所示:


// if parent and child href are equal, using either yields the same result

// if there is no parent, window.parent will be equal to window

// therefore, the conditional statement isn't necessary 

let url = window.parent.location.href;


查看完整回答
反對(duì) 回復(fù) 2021-10-14
  • 1 回答
  • 0 關(guān)注
  • 628 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)