gpt4 book ai didi

javascript - 如何在托管控件的页面上为 ASP.Net 自定义控件调用嵌入式资源中的 JavaScript 函数?

转载 作者:行者123 更新时间:2023-12-04 20:00:15 25 4
gpt4 key购买 nike

我有一个我一直在开发的 html 编辑器自定义控件,它有一个基本的撤消/重做功能,可以很好地与编辑器的所有功能配合使用。撤消/重做功能使用 2 个堆栈(分别命名为 UndoStack 和 RedoStack),当修改编辑器文本属性的其他编辑器功能之一出现时,这两个堆栈将推送到 UndoStack。对于可视化,单击“撤消”时,将调用 pop 并将该值存储到重做堆栈。

但是,编辑器还与一些页面上的 AJAX 功能交互,这些功能允许用户插入存储在我们数据库中的已写文本。我在这里想要完成的是包含用于在页面上运行编辑器的 JavaScript,并调用将文本从页面推送到撤消堆栈所需的函数。

作为旁注,我使用了 Rob2211 在 Embedded dll resources 上提供的解决方案在有问题的页面上获取脚本文件,但我想知道如何从它调用一个函数,因为它一直说我想调用的函数(pushUndoStack(),请原谅缺乏创造力)是未定义的。

谢谢

附言我通常使用 C# 编写代码,但有些项目使用 VB.NET

代码片段:在页面上

注册页面指令

<%@ Register Assembly="WebControl.HtmlEditor" Namespace="WebControl.HtmlEditor"      TagPrefix="ec" %>  

获取 HtmlEditor.js 函数的代码

<script type="text/javascript" src="<%= HtmlEditor.Resource.GetClientScript(Me.Page, "HtmlEditor.js")%>"></script>

代码片段:在 C# 文件中资源类

public class Resource
{
public static string GetClientScript(Page p, string file)
{
return p.ClientScript.GetWebResourceUrl(typeof(Resource), typeof(Resource).Namespace + ".Scripts." + file);
}
}

程序集引用:

[assembly: WebResource("WebControl.HtmlEditor.Scripts.HtmlEditor.js", "text/javascript")]

Prototype函数:(包含以下undo/redo函数)

WebControl.HtmlEditor.HtmlEditor.prototype =
{
.
.
.
}

来自嵌入式 JavaScript 文件:所有撤消/重做相关功能。

getUndoStack: function () {
return this.undoStack;
},

pushUndoStack: function (value) {
this.undoStack.push(value);
},

popUndoStack: function () {
return this.undoStack.pop();
},

getRedoStack: function () {
return this.redoStack;
},

setRedoStack: function (value) {
this.redoStack = value;
},

clearRedoStack: function () {
var redoStack = this.getRedoStack();
redoStack = new Array();
this.setRedoStack(redoStack);
},

pushRedoStack: function (value) {
this.redoStack.push(value)
},

popRedoStack: function () {
return this.redoStack.pop();
}

最佳答案

我使用 jQuery 解决了这个问题。由于我需要的 JavaScript 函数嵌入在 HTML 编辑器自定义控件中,因此我需要的函数已经可用于页面,它只需要一种方法来访问它。使用 $find('ControlID') 方法,我能够在 DOM 树中搜索“Editor”的 ID,并访问控件中包含的所有内容,在本例中为名为 pushUndoStack() 的函数。使我得出这个结论的是该项目的另一部分,该部分负责该项目的拼写检查部分。

感谢@AndrewWalters 和@TsanyoTsanev 的帮助。

关于javascript - 如何在托管控件的页面上为 ASP.Net 自定义控件调用嵌入式资源中的 JavaScript 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19366166/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com