我有一個HTML文件,我複製粘貼emscripten生成的代碼到它的<script></script>
區域
的瀏覽器中運行的emscripten代碼之前所有的HTML文件已被處理
因此,如果emscripten代碼使用一個HTML元素是在<script></script>
區域之後,它不會工作
here它說C main()函數在頁面完全加載後調用,但這是錯誤的
如何讓C代碼運行後該html文件是完全加載?emscripten的window.onload相當於
0
A
回答
2
這個page是一個使用Emscripten編譯爲JavaScript並在您自己的頁面中包含JavaScript的教程式指南。它包括在HTML文檔上單擊按鈕之前不運行C程序。
總之,通常,而不是複製和粘貼Emscripten生成的代碼,它是比較容易通過運行JavaScript來加載Emscripten的JavaScript在一個單獨的請求,例如,在主文檔中:
var script = document.createElement('script');
script.src = "my_emscripten_script.js";
document.body.appendChild(script);
在Emscripten你不需要有一個main
功能可言,該教程我鏈接到重命名main
功能mainf
,如果導出它通過將命令行標誌
-s EXPORTED_FUNCTIONS='["_mainf"]'
到emcc
在編譯時(注意引導下劃線!),然後當你想啓動你的C程序時你可以從JavaScript調用它。你如何從JavaScript調用的導出函數描述here,但對於改名mainf
功能將是一個JavaScript調用是這樣的:
Module.ccall('mainf', null, null);
如果你想確保這不叫,直到Emscripten運行 - 時間已經準備好,Emscripten使用的Module
對象可以添加一個onRuntimeInitialized
方法。當Emscripten準備就緒時,這個函數被調用,所以你可以用它來調用ccall
來啓動程序。
話雖如此,我很驚訝您的main
函數正在文檔準備就緒之前運行。請注意,html5.h
中的一些emscripten函數(例如用於請求畫布的功能全屏顯示)僅在用戶啓動的事件(出於安全原因)時纔有效,因此可能是您的問題而不是調用頁面加載main
期間的什麼點。
相關問題
- 1. window.onload與body.onload相比較document.onready
- 2. 相當於Android的
- 3. 相當於JDIC?
- 4. 相當於AWS
- 5. Android:getElementsByTagName相當於?
- 6. Linq相當於
- 7. drupalPost()相當於
- 8. 相當於SparkSQL
- 9. 相當於C#
- 10. HQL'parsename'相當於
- 11. 關於window.onload在javascript中的困惑
- 12. 在Emscripten
- 13. 在hibernate 5.1.0中相當於@LazyGroup的hbm相當於hibernate 5.1.0
- 14. Java等於()相當於PHP
- 15. WP7相當於EmptyDataTemplate?
- 16. find_by_sql相當於mongoid?
- 17. DateTime.FromOADate相當於swift
- 18. Vitamio相當於MEDIA_INFO_VIDEO_RENDERING_START
- 19. C#相當於InStrRev
- 20. .jcp相當於eclipse?
- 21. Java相當於Curl
- 22. psycopg2相當於mysqldb.escape_string?
- 23. Fortran相當於freopen
- 24. LINQ相當於Rails
- 25. .htaccess相當於baseurl?
- 26. PDO相當於odbc_tables?
- 27. JSP Post相當於
- 28. 相當於ModX塊
- 29. AF_UNIX相當於Windows
- 30. 相當於原型