有什麼方法可以在沒有JavaScript的情況下獲得對DOM和/或WebAPI(即全屏API)的讀/寫訪問權嗎?WASM訪問DOM
我想在C(C源代碼實際上是GC語言中的轉譯結果)中構建一個基本的應用程序。我正在構建的應用程序將以桌面應用程序運行(它並不意味着在「真實」的瀏覽器中運行),所以我可以根據需要調整環境(即佈局引擎)。
有什麼方法可以在沒有JavaScript的情況下獲得對DOM和/或WebAPI(即全屏API)的讀/寫訪問權嗎?WASM訪問DOM
我想在C(C源代碼實際上是GC語言中的轉譯結果)中構建一個基本的應用程序。我正在構建的應用程序將以桌面應用程序運行(它並不意味着在「真實」的瀏覽器中運行),所以我可以根據需要調整環境(即佈局引擎)。
在WebAssembly最小可行產品中調用WebAssembly的唯一方法是通過導入和導出。將來,WebAssembly可能會在gain capabilities which allow the embedder expose APIs directly的嵌入式瀏覽器中包含DOM。
Imports和exports雖然不是很複雜,但從您的C代碼的角度來看,它們看起來像是一個extern
調用,類似於Windows平臺上的DLL。您可能使用Emscripten編譯C代碼,請參閱its documentation "Call JavaScript functions from C/C++"以瞭解其工作原理的細節(因爲這不是您要問的問題,但我猜這是下一個問題)。
這不是從你的問題清楚,如果你:
或兩者兼而有之。
對於WebAssembly中的JS對象看起來,WebAssembly人員還沒有任何強烈的想法。
我想通過PR #1080,這是關於垃圾收集規範分拆到它自己的回購現在。不過,雖然這是發生,他們將移除,只提到與JS對象的網絡平臺&互操作中存在的規範,該規範中被描述的:
It's more aspirational that concrete,
我期待運行編譯的C - > WASM代碼在Chromium嵌入式框架內,因此它將在嵌入式瀏覽器中運行。 JS橋樑並不是我正在尋找的東西,所以我現在將跳過它,並在獲得真正的/原生的DOM訪問權後重新考慮它。 – themihai
你在找什麼?如果您的需求沒有得到滿足,我建議在這裏提交一個問題:https://github.com/WebAssembly/design/issues –
這只是JS部分創造了額外的摩擦。也許這是值得的,如果你真的需要JS interlop或Web /瀏覽器支持是強制性的,但這不是我的情況,因此我現在跳過它的原因。我看到DOM訪問正在路線圖上。我還應該在github上填寫一個問題嗎? – themihai