在代码文件.vb中执行 JavaScript 脚本。
如:Response.Write("<script>alert('aa');</script>")执行时没有任何问题,但我如何在代码文件中执行我自己定义的函数呢?
如:Response.Write("<script>OpenForm('gatheredit/searcharticle.aspx','AAA');</script>")
OpenForm是我自定义的一个打开窗体的函数,为什么执行不成功,我应该如何调用,谢谢!我不想在界面代码文件中调用这个函数请大家多指点!

解决方案 »

  1.   

    将OpenForm函数写道一个js文件中,在aspx页面中添加
    链接(<script src="..."></script>)。然后再在后台的
    程序中写入你的Response的代码。顺便检查一下是不是被
    什么插件给拦截了?
    如果出错的话,在IE的下角会有教本错误的信息的。
      

  2.   

    string strScript ="<script>OpenForm('testDataGrid.aspx','AAA');</script>"; Page.RegisterClientScriptBlock("a",strScript);
    function OpenForm(a,b)
    {
    window.open(a,b,"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=365,height=400");
    }
      

  3.   

    Cnapollo(旁痞)  我觉得你这种脚本注册方式在aspx文件中还可以做,但问题是我执行 JavaScript 脚本的页面是控件(ascx),不是页面(Aspx),控件不支持您的那种方式!
      

  4.   

    刚看到消息,现在CSDN消息没提醒的,晕
    我再试试看
      

  5.   

    ascx里一样可以啊.我刚试过
    要不你发代码我看看
      

  6.   

    ascx可以注册吗?我上次注册时提示错误
      

  7.   

    你把你的ascx代码发给我好吗?我的JavaScript脚本 OpenForm 放在body.aspx文件中,有一个控件A(ascx,在body.aspx文件中),我现在要有A控件中调用body.aspx的OpenForm,代码应该如何写对了,我的OpenForm方法中是打开一个模式窗体,我适应如何将返回值传到A控件中,我可以Body.aspx(A控件的载体)中接收到返回值,我应该如何做才能将返回值做到A控件!
      

  8.   

    Page.RegisterClientScriptBlock这几个函数是有先后顺序的,而且前面的那个字符串要是重复的话,会被最后一个所覆盖
      

  9.   

    ascx:
    namespace GCKJ.Web.Temp
    {
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls; /// <summary>
    /// CSDN99414325ALe 的摘要说明。
    /// </summary>
    public class CSDN99414325ALe : System.Web.UI.UserControl
    {
    protected System.Web.UI.WebControls.Button Button1; private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    } #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器
    /// 修改此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {
    this.Button1.Click += new System.EventHandler(this.Button1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void Button1_Click(object sender, System.EventArgs e)
    {
    string strScript ="<script>OpenForm('testDataGrid.aspx','AAA');</script>"; Page.RegisterClientScriptBlock("a",strScript); }
    }
    }
    aspx:
    <%@ Page language="c#" Codebehind="CSDN99414325ALe.aspx.cs" AutoEventWireup="false" Inherits="GCKJ.Web.Temp.CSDN99414325ALe1" %>
    <%@ Register TagPrefix="uc1" TagName="CSDN99414325ALe" Src="CSDN99414325ALe.ascx" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <script>
    function newwin(url) 
    {var win;
    //win=window.open("testDataGrid.aspx?id='"+url+"'","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=365,height=400");
    //alert(url);
    win=window.open("testDataGrid.aspx?id='"+url+"'","","toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=365,height=400");
    }
    function OpenForm(a,b)
    { window.open(a,b,"toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,width=365,height=400");
    }
    </script>
    <HTML>
    <HEAD>
    <title>CSDN99414325ALe</title>
    <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
    <meta name="CODE_LANGUAGE" Content="C#">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    </HEAD>
    <body MS_POSITIONING="GridLayout">
    <form id="Form1" method="post" runat="server">
    <uc1:CSDN99414325ALe id="CSDN99414325ALe2" runat="server"></uc1:CSDN99414325ALe>
    </form>
    </body>
    </HTML>