这看起来真的很蠢.我尝试了一些不同的方法,但它只是不起作用.我有一个带WebBrowser控件的WinForms应用程序.如果我使用相同的src字符串在我的桌面上尝试使用原始html文件,我放在一起的src工作正常.但是将相同的东西插入WebBrowser控件将无法正常工作.
这是我的代码:
HtmlElementCollection head = this.wbPreview.Document.GetElementsByTagName( "head" );
if (head != null)
{
HtmlElement elm = this.webBrowserControl.Document.CreateElement("script");
string mySource = Environment.CurrentDirectory + @"\MyScriptFile.js";
elm.SetAttribute("src", mySource);
elm.SetAttribute("type", "text/javascript");
((HtmlElement)head[0]).AppendChild(elm);
}
Run Code Online (Sandbox Code Playgroud)
WebBrowser无法获取脚本.但是,如果我将"mySource"更改为外部资源(通过http://),它可以正常工作!
救命!
我有一个能够通过WebBrowser对象打印HTML的打印机类.我希望能够从控制台应用程序打印,但是当我的打印机类尝试创建WebBrowser对象时出现错误:
WebBrowser browser = new WebBrowser();
Run Code Online (Sandbox Code Playgroud)
错误:
ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot
be instantiated because the current thread is not in a
single-threaded apartment.
Run Code Online (Sandbox Code Playgroud)
我尝试将对System.Windows.Forms的引用添加到我的控制台应用程序中,但这不起作用.我对这里发生的事情一无所知,但我很感激你的帮助.
WebKit是否公开了一个直接使用其DOM的API?我正在寻找一个类似HtmlElement的类,可以用来构建/遍历HTML内容的树.
我正在尝试将WebKit作为桌面应用程序中的Web浏览器控件托管,并且更喜欢直接API而不是通过COM.谢谢!
谢谢!
我想创建一个利用WebBrowser控件的多个实例的.NET应用程序.问题在于,我希望每个Web浏览器控件都能运行它自己的会话.IOW,我要求会话cookie,javascript全局命名空间等的集合对于每个实例是分开的,并且所有实例都出现在同一个窗口中.
AFAIK,这将要求我在一个单独的进程中运行每个Web浏览器控件.
几个问题:
提前致谢...
我正在使用WPF WebBrowser组件来显示一些非常简单的HTML内容.但是,由于我事先并不知道内容大小,因此当我加载某些数据集时,我正在获取控件上的滚动条.
基本上,我如何强制(或以其他方式影响相当于强制)WebBrowser扩展大小,以便显示所有内容而不需要滚动条?
有没有什么方法可以实际使用cookie容器中的cookie(以前从WebRequest中获取)并在WebBrowser控件中使用它们?如果是这样,我该怎么做?这适用于C#中的Winforms应用程序.
我有一个Delphi应用程序,在TWebBrowser控件中显示一组网页.其信息亭类型的应用程序,以便用户触摸上侧的按钮,它示出了在标签的特定网页.我遇到某些网站的一些问题,并获得IE javscript错误.
我想知道是否有一种方法可以在选项卡或Delphi的表单中嵌入chrome或firefox浏览器?
这个问题似乎回答了我遇到javascript错误的问题.
我正在使用Systems.Windows.Forms.Webbrowser控件,需要覆盖下载管理器.我按照这里的说明继承了表单和覆盖CreateWebBrowserSiteBase()
/// <summary>
/// Browser with download manager
/// </summary>
public class MyBrowser : WebBrowser
{
/// <summary>
/// Returns a reference to the unmanaged WebBrowser ActiveX control site,
/// which you can extend to customize the managed <see ref="T:System.Windows.Forms.WebBrowser"/> control.
/// </summary>
/// <returns>
/// A <see cref="T:System.Windows.Forms.WebBrowser.WebBrowserSite"/> that represents the WebBrowser ActiveX control site.
/// </returns>
protected override WebBrowserSiteBase CreateWebBrowserSiteBase()
{
var manager = new DownloadWebBrowserSite(this);
manager.FileDownloading += (sender, args) =>
{
if …Run Code Online (Sandbox Code Playgroud) 利用几个代码片段,我试图用Javascript事件处理程序挂钩ActiveX对象.我无法确定为什么没有调用事件处理程序.
更新
通过在'onLoad'事件中将javascript调用放到SayHello(),我能够触发ActiveX事件.现在我正在寻找C#调用,以及如何将它挂钩到Javascript使用的ActiveX对象中.
(这也可能依赖于从IE的高级选项中启用本地脚本).
消息继续
<script for="MyObject" event="OnUpdateString(stuff)">
document.write("<p>" + stuff);
document.writeln("</p>");
</script>
Run Code Online (Sandbox Code Playgroud)
利用MSDN文档,我创建了一个WinForms应用程序,其中包含一个WebBrowser控件,该控件充当ObjectForScripting(与问题无关).此容器调用ActiveX事件,但未被Javascript处理.我要在ActiveX交互中包含C#Form代码,并允许它作为ActiveX和/或WebBrowser控件的未来用户的参考.
此文件旨在与新的Windows窗体项目一起使用,其中WebBrowser控件已添加到主窗口.
C#Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Security.Permissions;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ActiveXObjectSpace;
namespace TestActiveX
{
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public partial class Form1 : Form
{
MyObject myObject = new MyObject();
public Form1()
{
InitializeComponent();
Text = "ActiveX Test";
Load += new EventHandler(Form1_Load);
}
private …Run Code Online (Sandbox Code Playgroud) 是否可以在WPF WebBrowser中使用Blockly google javascript库?
特别是,Blockly需要几个js脚本.我们如何引用js库?