IntraWeb在异步事件中返回javascript 脚本

unit Unit1;

interface

{$DEFINE CODESITE}

uses {$IFDEF CODESITE}CodeSiteLogging, {$ENDIF}
Classes, SysUtils, IWAppForm, IWApplication, IWColor, IWTypes, IWCompButton,
Vcl.Controls, IWVCLBaseControl, IWBaseControl, IWBaseHTMLControl, IWControl,
IWCompMemo, IWCompJQueryWidget, IWCompEdit;

type
TIWForm1 = class(TIWAppForm)
IWMemo1: TIWMemo;
btnMessage: TIWButton;
btnConfirm: TIWButton;
jQueryContentFiles: TIWJQueryWidget;
jQMessageExecuter: TIWJQueryWidget;
jQConfirmExecuter: TIWJQueryWidget;
procedure btnConfirmAsyncClick(Sender: TObject; EventParams: TStringList);
procedure btnMessageAsyncClick(Sender: TObject; EventParams: TStringList);
procedure IWAppFormCreate(Sender: TObject);
private
procedure AJAXConfirm(AParams: TStringList);
public
end;

implementation

{$R *.dfm}

procedure TIWForm1.btnMessageAsyncClick(Sender: TObject;
EventParams: TStringList);
begin
WebApplication.CallBackResponse.AddJavaScriptToExecuteAsCDATA(
StringReplace(jQMessageExecuter.OnReady.Text, ‘@[email protected]‘, ‘显示一个消息对话框就是如此简单!‘, []));
end;

procedure TIWForm1.AJAXConfirm(AParams: TStringList);
var
cResult: string;
begin
cResult := AParams.Values[‘DialogResult‘];
if Length(cResult) > 0 then begin
if cResult = ‘清除‘ then
IWMemo1.Clear
else
IWMemo1.Lines.Add(cResult);
end;
end;

procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
WebApplication.RegisterCallBack(‘AJAXConfirm‘, AJAXConfirm);
end;

procedure TIWForm1.btnConfirmAsyncClick(Sender: TObject;
EventParams: TStringList);
var
cDlgResult: string;
begin
WebApplication.CallBackResponse.AddJavaScriptToExecuteAsCDATA(
StringReplace(jQConfirmExecuter.OnReady.Text, ‘@[email protected]‘,
‘显示一个确认对话框就是如此简单,继续吗?‘, []));
end;

initialization

TIWForm1.SetAsMainForm;

end.

时间: 2024-11-13 09:33:54

IntraWeb在异步事件中返回javascript 脚本的相关文章

执行AJAX返回HTML片段中的JavaScript脚本

如果AJAX加载的数据是一个HTML片段,而且这个HTML片段还包含脚 本<script>块,那么在你把这数据xmlHttp.responseText用innerHTML方法插入到当前文档一个元素中,你会 发现AJAX加载回来的脚本根本没有执行.这是AJAX开发中很常见的问题,如果你不是一直在用JavaScript框架做开发,相信你早就发现这个问题 了.本文分析了两个解决办法,其中一个是讲解jQuery框架的实现. 一. 问题描述 下面举个简单的例子,演示问题所在.在下面的例子中,假设变量re

在&lt;a&gt;&lt;/a&gt;标签中调用javascript脚本

有时候,我们点击了<a></a>标签(除了跳转到指定链接外)想要它调用某个方法,及调用javascript脚本,该如何做: 方法1:<a href="javascript:void(0);" onclick="functionname()" >aaaa</a> 方法2:<a href="javascript:functionname('dd')" >ddddd</a> 方法3

VBA中使用JavaScript脚本语言解析JSON数据

JSON:JavaScript 对象表示法(JavaScript Object Notation) 和xml相似,都是文本形式(保存在文本文件中或字符串等形式),比如: jsstr = {"系别":"历史系","班级":"一班", "学员":[ {"姓名":"张三","年龄":25,"性别":"男"}, {&

ASP.NET CS文件中输出JavaScript脚本的3种方法以及区别

Response.Write 与   Page.ClientScript.RegisterStartupScript 与 Page.ClientScript.RegisterClientScriptBlock 之间的区别 方法1,使用Response.Write,这种方法会把JS代码写在页面的最顶部(<html>的前面):System.Web.HttpContext.Current.Response.Write("<script language=javascript>a

【VS2017新特性】在VS中调试javascript脚本

1   概述 VS2017可以调试JS,本篇文章简要概述VS2017关于启用和关闭VS调试功能. 2   具体内容 当开启VS2017JS调试功能时,我们用VS2017打开解决方案时,会出现如下界面: 关闭VS2017 js调试功能: 工具=>选项 调试=>去掉"启用ASP.NET的JavaScript调试(Chrome和IE)"勾号 用VS2017启动解决方案,就不会弹出如下界面,且关闭Chrome时,VS解决方案不会关闭 3   参考文献 [01]https://blo

JavaScript脚本在页面中放置的位置

JavaScript脚本通常放置在三个位置: 1.head部分JavaScript脚本. 2.body部分JavaScript脚本. 3.单独以.js结尾的文件中的JavaScript脚本. 客户端会顺序读取并解析文档内容,body部分的JavaScript脚本会优先执行,其他部分的JavaScript脚本会通过调用执行. head部分JavaScript脚本 <html> <head> <script type="text/javascript">

1-1 在html中插入JavaScript

1.在html文件当中,使用<script>标签在HTML网页中插入JavaScript代码.<script>标签要成对出现,并把JavaScript代码写在<script></script>之间 1 <!DOCTYPE html> 2 <html lang="en"> 3 4 <head> 5 <meta charset="UTF-8"> 6 <title>

(五)CodeMirror - 关于htmlmixed中包含script脚本

最近发现个问题,场景如下: 当创建的mode类型为htmlmixed,且内容中包含javascript脚本,且是闭包立即执行: 如果内容是使用JQuery函数.html()插入到DOM中后再创建codeMirror对象: 那么,这时,如果JS执行报错,那么随后创建codeMirror对象也中断了: 解决方法: 可以使用elem.text()方法插入内容,那么有错的JS也不会被执行到,可顺利进行后面的创建 1 var elem = $('#code'); 2 var str = ''<div cl

Visual studio 2017 中的Javascript智能提示

1.智能提示 对于JS文件中的API,你若需要让那个JS文件中的方法能够在你写的那个JS文件中能够智能显示的话,直接把它拉进你的JS文件中就好了. 举个例子:你想 在你正在写的a.js文件中引用b.js中的功能与函数.很简单,你只需要把b.js文件拉到你的a.js文件中就好了.这时在你的文件 顶端会显示这样一行内容:/// <reference path="../angular.js" />. 就是这样,智能显示的很全面,就像你自己写类文件一样,里面的注释什么的都全部显示出