C# 执行Javascript脚本的方法步骤

yizhihongxing

C# 执行 JavaScript 脚本是非常常见的需求,下面是执行 JavaScript 脚本的方法步骤:

1. 引入COM组件

首先需要引入COM组件“Microsoft Internet Controls”。在Visual Studio的项目中点开Solution Explorer,右键References -> Add Reference...,在Add Reference对话框中选择COM页签,找到Microsoft Internet Controls,确认添加。

2. 创建IE浏览器对象

接下来就是需要创建IE浏览器对象 -- 用Process类在后台启动IE进程,并且创建一个新的IE浏览器对象。

using System.Diagnostics;
using SHDocVw;
using mshtml;

public void CreateBrowserObject()
{
    Process p = new Process();
    p.StartInfo.FileName = "iexplore";//使用IE浏览器
    p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;//隐藏窗口
    p.Start();//启动IE进程
    SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass(); // 创建ShellWindows对象 
    foreach (SHDocVw.InternetExplorer explorer in shellWindows)
    {
        if (explorer.LocationURL.Contains("about:blank"))
        {
             this.browser = explorer;
            break;
        }
    }
}

3.执行JavaScript脚本

成功创建了IE浏览器对象后,就可以使用IHTMLWindow2接口的execScript方法执行脚本了。此接口提供了执行脚本的基本支持,为JavaScript脚本提供了一个运行环境。

public string ExecJavaScript(string script)
{
    IHTMLWindow2 window = (IHTMLWindow2)browser.Document.parentWindow;
    try
    {
        object r = window.execScript(script, "JavaScript");
        return r == null ? "" : r.ToString();
    }
    catch (Exception ex)
    {
        return ex.Message;
    }
}

示例1:获取网页标题

CreateBrowserObject();
this.browser.Navigate("http://www.qq.com");//访问QQ网站
while (this.browser.Busy)
{
    System.Threading.Thread.Sleep(1000); //等待IE加载页面完成
}
string title = ExecJavaScript("document.title"); //执行JS脚本获取页面Title
Console.Write(title);

示例2:打印页面所有的链接URL

CreateBrowserObject();
this.browser.Navigate("http://www.baidu.com");//访问百度网站
while (this.browser.Busy)
{
    System.Threading.Thread.Sleep(1000); //等待IE加载页面完成
}
IHTMLDocument2 doc = (IHTMLDocument2)browser.Document;
IHTMLElementCollection links = doc.links; //获取页面链接标签集合
for (int i = 0; i < links.length; i++)
{
    IHTMLElement link = (IHTMLElement)links.item(i, 0); //获取某一个链接标签
    Console.Write(link.getAttribute("href")); //获取链接地址
}

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C# 执行Javascript脚本的方法步骤 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • JS实现的网页倒计时数字时钟效果

    JS实现的网页倒计时数字时钟效果的攻略如下: 需求 我们需要一个Web页面上实现一个倒计时数字时钟效果。 设计思路 生成HTML结构 使用CSS样式美化数字 使用JS实现倒计时功能 使用JS更新HTML内容 HTML代码 <div class="countdown"> <span id="days"&…

    JavaScript 2023年5月27日
    00
  • Javascript中对象继承的实现小例

    Javascript中对象继承的实现小例 实现对象继承的方式有很多种,包括原型链继承、借用构造函数继承、组合继承等。本例介绍如何通过原型链继承的方式实现对象的继承。 原型链继承 原型链继承是一种简单、易懂的继承方式。它的基本原理是:通过将子类的原型设置为父类的实例,子类就可以继承父类的实例属性和方法。 具体来说,我们可以先定义一个父类MyClass,再定义一…

    JavaScript 2023年5月27日
    00
  • JavaScript基础知识学习笔记

    JavaScript 基础知识学习笔记 – 完整攻略 学习 JavaScript 基础知识是成为前端工程师的第一步。在这篇攻略中,我们将探讨如何系统地学习 JavaScript 基础知识和一些实际的学习示例。 1. 学习 JavaScript 基础知识的步骤 步骤1: 学习 JavaScript 基础语法 学习 JavaScript 基础知识的第一步是熟悉语…

    JavaScript 2023年5月17日
    00
  • JavaScript中常见内置函数用法示例

    JavaScript中常见内置函数用法示例 JavaScript中包含许多内置函数,这些函数能够很好地帮助开发者处理各种任务。下面将介绍JavaScript中常见内置函数的一些用法示例。 String函数 String函数可以用来处理字符串,包括截取、相加、判断字符串是否符合正则表达式等。 截取字符串 可以通过slice、substring、substr等函…

    JavaScript 2023年5月27日
    00
  • 浅谈Vue使用Elementui修改默认的最快方法

    下面我来详细讲解如何使用Element UI修改Vue的默认主题样式。 安装 Element UI 首先需要安装Element UI,可以通过npm安装: npm install element-ui -S 引入 Element UI 在Vue项目的main.js文件中,引入Element UI的样式文件和js文件: import Vue from ‘vue…

    JavaScript 2023年6月10日
    00
  • javascript 事件处理、鼠标拖动效果实现方法详解

    JavaScript 事件处理、鼠标拖动效果实现方法详解 1. 什么是事件处理 在网页中,用户和网页之间的交互是通过事件来实现的。事件是页面中发生的某些特定的行为,例如点击链接、按下键盘按键、鼠标移动等。事件处理就是在事件发生时,执行相应的 JavaScript 代码。 2. 事件类型 常见的事件类型包括: 点击事件(click) 鼠标移动事件(mousem…

    JavaScript 2023年6月11日
    00
  • FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合

    下面是关于“FCKeditor 和 SyntaxHighlighter 代码高亮插件的整合”的详细攻略。 概述 首先我们要理解这两个插件是什么。FCKeditor是一个基于Web的WYSIWYG文本编辑器,可以方便地进行文本排版,支持多种格式,具有图形用户界面。而SyntaxHighlighter是一个代码高亮插件,可以让我们方便地将代码高亮显示,并可以自定…

    JavaScript 2023年6月11日
    00
  • JS实现去除数组中重复json的方法示例

    当我们处理包含多个json对象的数组数据时,可能需要将重复的json对象去重,以免造成数据混乱。以下是JS实现去除数组中重复json对象的方法示例及详细步骤: 方法一:使用Array.prototype.filter()和JSON.stringify() const arr = [{name: ‘Alice’, age: 23}, {name: ‘Bob’,…

    JavaScript 2023年6月11日
    00
合作推广
合作推广
分享本页
返回顶部