今天,我們來介紹一下如何讓C和HTML互相交互。
首先,我們需要在HTML中引入C代碼,可以使用<script>標簽,也可以使用<object>標簽。比如,我現在想把一個C函數的結果顯示在HTML頁面中:
<!DOCTYPE html> <html> <head> <title>C和HTML交互</title> </head> <body> <div id="result"></div> <script type="text/c"> function calculate() { var result = 0; result = add(3, 5); document.getElementById("result").innerHTML = "The result is " + result; } function add(a, b) { var sum = 0; sum = a + b; return sum; } </script> <button onclick="calculate()">Calculate</button> </body> </html>
在上面的代碼中,我們定義了一個名為calculate()的JavaScript函數,它調用了一個名為add()的C函數,并把結果顯示在HTML頁面上。在<script>標簽中,我們使用了type="text/c"來指定代碼類型為C。而在calculate()函數中,我們調用了add()函數,并把結果存儲在JavaScript變量result中。最后,把結果顯示在HTML頁面上。
接下來,我們看一下如何在C代碼中訪問HTML頁面中的元素。我們可以使用emscripten庫來將C代碼編譯成JavaScript代碼,然后在JavaScript中訪問HTML頁面中的元素。比如,我現在想在C程序中獲取文本框的值:
#include <emscripten.h> #include <stdio.h> int main() { char* text = EM_ASM_INT({ var val = document.getElementById("text").value; return val; }); printf("The value is %s\n", text); return 0; }
在上面的代碼中,我們使用了EM_ASM_INT宏來嵌入JavaScript代碼到C程序中。在JavaScript代碼中,我們使用document.getElementById("text").value來獲取文本框的值,并返回給C程序。最后,我們可以使用printf函數來輸出文本框的值。
以上就是關于C和HTML交互的介紹。希望對大家有所幫助。