利用几个代码片段,我试图用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) 我和我的同事遇到了一个令人讨厌的情况,我们必须使用一个活动的X控件来操纵页面上的网络摄像头.
是否可以将javascript事件处理程序分配给活动x控件中的按钮,以便在单击时触发页面上的操作,或者我们是否必须在html页面上创建一个操作Active X Control的按钮,然后可以在页面上触发任何必要的操作?
我已经在SO上看到了一些与此相关的问题,但我认为我的情况有所不同,不能被视为重复(如果我错了,请告诉我).
我有一个用C#编写的ActiveX控件,虽然我主要使用它,但我希望在点击时用JavaScript引发一个事件(它显示一个图像,因此它是页面上的一个可视元素).
我想要完成的最终目标与它是一个<span>
标签没什么不同,并且onclick
当点击标签的区域时它有一个事件来提升JavaScript函数.
我读过的大部分内容都详细介绍了如何处理ActiveX控件中的事件并来回发送信息,这很好,但看起来过于复杂.我不打算与ActiveX控件进行通信,我只需要一个JavaScript函数,当我点击它时,以类似于<span>
或<div>
标记的方式触发.我可以用JavaScript处理其他所有内容.简单地将控件包装在一个<span>
或<div>
一个onclick
事件中没有任何效果 - ActiveX控件几乎覆盖了它.
是否有一种简单的方法来处理用C#编写的ActiveX控件?
我想另一种方式是 - 我正在使用第三方控件,我们必须使用类似于以下的代码来通过JavaScript与我们的HTML页面进行通信
<script type="text/javascript" event="OnMouseClick(index)" for="AXObjectName">
<!--
AXObjectName_OnMouseClick(index);
//-->
</script>
Run Code Online (Sandbox Code Playgroud)
AXObjectName
控件的名称/ ID 在哪里,AXObjectName_OnMouseClick
它是我在代码中触发的JavaScript函数的名称,传递index
参数.但是,我需要做些什么来设置OnMouseClick
控件中的方法?如果我不想传递任何实际信息(即不index
),我甚至不得不走这么远吗?
今天我发现了这段代码:
<object ID="FF" CLASSID="clsid:guid" CODEBASE="url" VIEWASTEXT></object>
<object ID="FileSaver" CLASSID="clsid:guid" CODEBASE="url" VIEWASTEXT></object>
…
<script language="javascript">
function FileSaver::OnFinished(Status){…}
function FF::OnFinished(Status){…}
</script>
Run Code Online (Sandbox Code Playgroud)
我找不到任何相关的解释这种语法.它真的是javascript吗?这是对的吗?如果没有,代码应该如何?
这是一个没有外部脚本链接的单页面.请注意,函数声明直接在<script>
块内.