6

我有一個網站和一個谷歌瀏覽器擴展。該擴展使用NaCl API(JavaScript)從用戶計算機寫入/讀取文件(C++)。如何在我的網站中使用Chrome擴展功能(NaCl)?

我的問題是:我可以加載我的擴展到我的網站,例如,在一個iFrame中,並保持其功能?

我試過這樣做,但它只加載擴展「可視」部分。寫/讀(NaCl)功能不起作用。

一個例子,以更好地解釋什麼是我想要做的:

它的實際工作是這樣的: enter image description here

我想這樣做: enter image description here

或者這是另一種方式,但我認爲這是不可能的,是嗎? enter image description here

這可能嗎?我該怎麼做?

編輯

下面是代碼:

manifest.json中我把這個:

"externally_connectable": { 
    "matches": ["http://www.example.com/index.html"] 
}, 

"web_accessible_resources": [ 
    "/*" 
], 
"content_scripts" : [ 
    { 
     "matches" : ["http://www.example.com/index.html"], 
     "js": ["index.js"] 
    } 
], 

我的網站的iframe:

<iframe src="chrome-extension://myextensionid/index.html"></iframe> 

在我的擴展index.js文件中,只有兩個按鈕。它們的功能(JavaScript)與.cc文件(通過NaCl)通信以在計算機上的文件中保存或加載字符串。

正如我所說的,擴展工作正常,但是當我嘗試通過iframe將其加載到我的網站時,它只加載html(可視化)。只要JS用NaCl調用C++函數,JavaScript就不會加載,因此也不會加載C++。

任何解決方案?

+0

圖形可以幫助別人,但我無法解析它。爲什麼不發佈代碼示例,以便其他人可以重現您所看到的問題? – sowbug

+0

@sowbug - 我更新了我的問題。 – Dehumanizer

+0

您是否嘗試在content_scripts中添加「all_frames」:true? –

回答

3
<embed name="nacl_module" id="nacl_module" width="100%" height="100%" path src="//storage.googleapis.com/gonacl/demos/publish/236779/voronoi/voronoi.nmf" type="application/x-pnacl"> 

和上面的標籤是在這個iframe中:

<iframe frameborder="0" width="100%" height="100%" src="/static/voronoi/index.html"> 

這是https://gonativeclient.appspot.com/demo/voronoi

另外,https://gonativeclient.appspot.com/static/voronoi/example.js包含如何是完成的腳本。

我已經做了10分鐘的搜索找到。只知道NaCl不會在其他瀏覽器上工作。

如果您想要純JavaScript,可以在所有瀏覽器上使用。使用下面的代碼片段。它會創建一個鏈接,當您單擊該鏈接時,它會下載一個保留text數據的文本文件。 添加`.innerHTML'屬性,如「保存」,然後您可以單擊它。HTML5對長屬性沒有限制。

var file = document.createElement('a'); 
file.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text)); 
file.setAttribute('download', filename); 

你可以有text變量從多文本框,並與更新其值的KeyEvent設置。文件名也是如此,例如「Saved draft.txt」。除了text/plain之外,您還可以嘗試其他類型的數據。要檢查其他類型,請搜索標題可以在其數據字段中執行的操作。

對於文件加載,你可以檢查此http://www.html5rocks.com/en/tutorials/file/dndfiles/

相關問題