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

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

從Background.js在頁(yè)面級(jí)執(zhí)行代碼并返回值

從Background.js在頁(yè)面級(jí)執(zhí)行代碼并返回值

我有一個(gè)網(wǎng)頁(yè),其中包含自己的腳本和變量,我需要執(zhí)行這些腳本和變量并從擴(kuò)展程序的Background.js中檢索返回值。我了解(我認(rèn)為?。?,為了與網(wǎng)頁(yè)進(jìn)行交互,必須通過(guò)chrome.tabs.executeScript或ContentScript完成此操作,但是因?yàn)榇a必須在原始頁(yè)面的上下文中執(zhí)行(為了具有范圍) (腳本和變量),則需要先將其注入頁(yè)面。繼Rob W撰寫(xiě)的精彩文章之后,我能夠調(diào)用頁(yè)面級(jí)腳本/變量,但是我正在努力了解如何以這種方式返回值。到目前為止,這就是我所得到的...網(wǎng)頁(yè)代碼(我想與之交互):<html><head><script>    var favColor = "Blue";    function getURL() {      return window.location.href;    }</script></head><body>    <p>Example web page with script content I want interact with...</p></body></html>manifest.json:{  // Extension ID: behakphdmjpjhhbilolgcfgpnpcoamaa  "name": "MyExtension",  "version": "1.0",  "manifest_version": 2,  "description": "My Desc Here",  "background": {    "scripts": ["background.js"]  },    "icons": {    "128": "icon-128px.png"  },  "permissions": [    "background",    "tabs",    "http://*/",    "https://*/",    "file://*/",           //### (DEBUG ONLY)    "nativeMessaging"  ]}background.jscodeToExec = ['var actualCode = "alert(favColor)";',                  'var script = document.createElement("script");',                  ' script.textContent = actualCode;',                  '(document.head||document.documentElement).appendChild(script);',                  'script.parentNode.removeChild(script);'].join('\n');chrome.tabs.executeScript( tab.id, {code:codeToExec}, function(result) {   console.log('Result = ' + result);} );我意識(shí)到代碼當(dāng)前只是在“更改” favColor變量(這只是一項(xiàng)測(cè)試,以確保我可以看到它正常工作)。但是,如果我嘗試返回該變量(通過(guò)將其保留為最后一條語(yǔ)句或說(shuō)“ return favColor”),則executeScript回調(diào)將永遠(yuǎn)沒(méi)有該值。因此,這里似乎有(至少)三個(gè)級(jí)別:background.js內(nèi)容腳本實(shí)際網(wǎng)頁(yè)(包含腳本/變量)...我想知道從1級(jí)到3級(jí)(以上)并返回值的推薦方式是什么?在此先感謝:o)
查看完整描述

3 回答

?
躍然一笑

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

我主要推薦Xan的方法,因?yàn)槭褂卯惒绞录M(jìn)行編碼的一個(gè)優(yōu)點(diǎn)是,如果需要,可以更輕松地將代碼重構(gòu)為使用異步API。如果您確定總是要同步訪問(wèn)數(shù)據(jù),那么從我的答案中使用同步方法就可以了。實(shí)際上,實(shí)現(xiàn)它變得越來(lái)越容易,因此出錯(cuò)率也更低。

查看完整回答
反對(duì) 回復(fù) 2019-12-06
  • 3 回答
  • 0 關(guān)注
  • 385 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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