document.getElementById()
获取元素,使用addEventListener()
添加事件监听器,以及使用XMLHttpRequest
或fetch
进行异步数据请求。在C#中,JavaScript(JS)语句的执行通常通过WebBrowser控件或WebView控件来完成,这些控件允许开发者在Windows窗体应用程序或WPF应用程序中嵌入网页,并与其交互,以下是一些在C#中常用的JS语句及其用途:
1、document.getElementById: 用于获取指定ID的元素。
var element = document.getElementById("myElement");
2、document.querySelector: 根据CSS选择器获取元素。
var element = document.querySelector(".myClass");
3、element.style: 修改元素的样式。
element.style.backgroundColor = "red";
4、innerHTML: 设置或获取HTML内容。
element.innerHTML = "Hello, World!";
5、addEventListener: 为元素添加事件监听器。
element.addEventListener("click", function() { alert("Clicked!"); });
6、removeEventListener: 移除事件监听器。
element.removeEventListener("click", myFunction);
7、createElement: 创建新元素。
var newElement = document.createElement("div");
8、appendChild / insertBefore: 向DOM中添加元素。
element.appendChild(newElement); element.insertBefore(newElement, referenceNode);
9、removeChild: 从DOM中删除元素。
element.removeChild(child);
10、textContent / innerText: 获取或设置文本内容。
var text = element.textContent; // 获取文本内容 element.textContent = "New Text"; // 设置文本内容
11、setAttribute / getAttribute: 设置或获取属性值。
element.setAttribute("id", "newId"); var id = element.getAttribute("id");
12、removeAttribute: 移除属性。
element.removeAttribute("id");
13、classList: 操作元素的类名。
element.classList.add("myClass"); element.classList.remove("myClass"); element.classList.toggle("myClass");
14、dataset: 访问元素的数据属性。
var data = element.dataset.myData; element.dataset.myData = "newValue";
15、scrollTo / scrollBy: 滚动到特定位置或按量滚动。
window.scrollTo(0, 0); // 滚动到页面顶部 window.scrollBy(0, 100); // 向下滚动100像素
16、location: 获取或设置当前页面的URL。
var url = window.location.href; // 获取当前URL window.location.href = "http://example.com"; // 设置新的URL
17、history: 管理浏览器历史记录。
window.history.back(); // 后退一页 window.history.forward(); // 前进一页
18、localStorage / sessionStorage: 存储数据到本地存储或会话存储。
localStorage.setItem("key", "value"); // 设置本地存储项 var value = localStorage.getItem("key"); // 获取本地存储项 sessionStorage.setItem("key", "value"); // 设置会话存储项 var value = sessionStorage.getItem("key"); // 获取会话存储项
19、JSON.parse / JSON.stringify: 解析JSON字符串和将对象转换为JSON字符串。
var obj = JSON.parse('{"name":"John"}'); // 解析JSON字符串 var jsonString = JSON.stringify(obj); // 将对象转换为JSON字符串
20、fetch: 发起网络请求。
fetch("https://api.example.com/data") .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
21、Promise: 处理异步操作。
var promise = new Promise((resolve, reject) => { // 异步操作 resolve("Success!"); }); promise.then(result => console.log(result)).catch(error => console.error(error));
22、async / await: 更简洁地处理异步操作。
async function fetchData() { try { let response = await fetch("https://api.example.com/data"); let data = await response.json(); console.log(data); } catch (error) { console.error('Error:', error); } } fetchData();
23、Array methods: 如map, filter, reduce等。
var numbers = [1, 2, 3, 4]; var doubled = numbers.map(x => x * 2); // [2, 4, 6, 8] var evens = numbers.filter(x => x % 2 === 0); // [2, 4] var sum = numbers.reduce((a, b) => a + b, 0); // 10
24、Object methods: 如keys, values, entries等。
var obj = {a: 1, b: 2, c: 3}; var keys = Object.keys(obj); // ["a", "b", "c"] var values = Object.values(obj); // [1, 2, 3] var entries = Object.entries(obj); // [["a", 1], ["b", 2], ["c", 3]]
25、Set and Map: ES6引入的新数据结构。
var mySet = new Set([1, 2, 3]); mySet.add(4); // 添加元素 mySet.delete(2); // 删除元素 var myMap = new Map(); myMap.set("key1", "value1"); // 设置键值对 var value = myMap.get("key1"); // 获取值
是在C#中使用的常见JS语句的一些示例,在实际开发中,根据具体需求选择合适的JS语句来实现功能是非常重要的,下面是一个相关的FAQs部分,解答两个常见问题。
FAQs
**Q1: 如何在C#中调用JavaScript函数?
A1: 在C#中调用JavaScript函数通常涉及到使用WebBrowser控件或WebView控件的InvokeScript方法,如果你有一个名为sayHello
的JavaScript函数,你可以这样调用它:
webBrowser1.Document.InvokeScript("sayHello");
如果需要传递参数给JavaScript函数,可以使用如下方式:
webBrowser1.Document.InvokeScript("sayHello", new object[] { "World" });
这将调用JavaScript中的sayHello("World")
函数。
**Q2: 如何从C#获取JavaScript变量的值?
A2: 要从C#获取JavaScript变量的值,你可以使用WebBrowser控件或WebView控件的Document属性来访问DOM,然后使用相应的方法获取值,假设你想获取一个ID为myElement
的元素的文本内容,可以这样做:
var element = webBrowser1.Document.GetElementById("myElement"); if (element != null) { string textContent = element.InnerText; // 或者使用 .Value, .InnerHTML, .OuterHTML 等根据需要获取不同类型的内容 Console.WriteLine(textContent); } else { Console.WriteLine("Element not found."); }
由于JavaScript是异步执行的,所以在尝试访问DOM之前确保页面已经完全加载是很重要的,这通常可以通过处理DocumentCompleted事件来实现。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1483491.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复