【问题标题】:Windows Forms Control in IE not responding to JavaScript callsIE 中的 Windows 窗体控件不响应 JavaScript 调用
【发布时间】:2009-05-22 09:22:21
【问题描述】:

我有一个 Windows 窗体控件的问题,该控件包含在 DLL 中并在 Object 标记中部署到 IE。该对象应返回一个字符串,Javascript 会将其放入一个隐藏字段中,准备好发回服务器。这是我多次使用过的方法,但我现在从 Javascript 中收到可怕的“对象不支持此方法或属性”错误消息。我已将其缩小到对返回字符串的函数的调用。

我已经消除的东西:

  1. 函数调用中的拼写错误
  2. 调用的函数是公共函数
  3. 权限错误 - 都在本地主机、受信任的站点等上运行

可能相关的事情:

  1. dll 包含几个在控件中使用的类
  2. 控件是自定义的,但使用各种窗体控件
  3. 基本流程是控件(允许用户输入多页图纸)构建一个对象,该对象被序列化并输出为base 64字符串。 javascript 调用输出函数并将(压缩的)字符串放入隐藏控件中。提交表单并将字符串回传到服务器进行处理。

如果有人可以提供帮助,我将不胜感激。

<body>
<script language="javascript" type="text/javascript">
    function GetValues(){
        alert(document.draw1.ReturnSerialisedObjectString());
        return true;
    }
</script>


<input type="hidden" id="hdnData" runat="server" />
<input type="button" onclick="javascript:return GetValues();" value="Click Me" />

<br /><br />

<object id="draw1" classid="SlainteCustomControls.dll#SlainteCustomControls.FreeFormControl" width="482" height="579" viewastext />

【问题讨论】:

  • 您能否提供一些组件中的 C# 代码示例。你实现了 IObjectSafety 吗?必须正确修饰类和方法才能通过 COM 访问?

标签: c# javascript windows internet-explorer forms


【解决方案1】:

试试:-

alert(document.getElementById('draw1').ReturnSerialisedObjectString());

【讨论】:

  • 已经有了,对此也不满意。在机器级别是否有其他东西阻止通过 JavaScript 访问用户控件?我已经修改了 CAS 策略以允许 localhost 的完全权限(用于测试)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多